2016-12-13 6 views
1

私はボタンであり、ボタンをクリックしたときにパスを変更しようとするが、何も起こらない以下の指示を持っている。カスタムディレクティブからパスを変更するにはどうすればよいですか?角度

app.directive('searchAgainButton', function ($location) { 
    return { 
     template: '<button class="searchAgainButton"><i class="fa fa-search" aria-hidden="true"></i><span> Search Again</span></button>', 
     link: function (scop, element, attrs) { 
      element.on('click', function() { 
       $location.path('/index') 
      }) 
     } 
    } 
}); 
+0

を試してみてください、あなたは$スコープに適用されます使用してみましたか? –

+0

@AnirudhMangalvedhekarいいえ、私は$ location.path( '/ index')の下に置くべきですか? – Octtavius

+1

'$ location'は依存関係として記述されていません。 – GillesC

答えて

1

elementがボタンを指していません。この

var app = angular.module('myApp', []); 

    app.directive('searchAgainButton', function ($location) { 
     return { 
       restrict:"AE", 
      template: '<button ng-click="changePath()" class="searchAgainButton"><i class="fa fa-search" aria-hidden="true"></i><span> Search Again</span></button>', 
      link: function (scope, element, attrs) { 
       scope.changePath = function(){ 
        $location.path('/index') 
       } 
      } 
     } 
    }); 

//html 
<div ng-app="myApp"> 
    <div search-again-button></div> 
</div> 

FIDDLE EXAMPLE

関連する問題