Angularjs 如何从自定义指令更改路径?有棱角的

Angularjs 如何从自定义指令更改路径?有棱角的,angularjs,angularjs-directive,angular-ui-router,Angularjs,Angularjs Directive,Angular Ui Router,我有下面的指令,这是一个按钮,并试图改变路径时,点击按钮,但什么也没有发生 app.directive('searchAgainButton', function ($location) { return { template: '<button class="searchAgainButton"><i class="fa fa-search" aria-hidden="true"></i><span> Search Aga

我有下面的指令,这是一个按钮,并试图改变路径时,点击按钮,但什么也没有发生

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')
            })
         }
     }
});
app.directive('searchAgainButton',函数($location){
返回{
模板:“再次搜索”,
链接:功能(scop、元素、属性){
元素上('单击',函数(){
$location.path(“/index”)
})
}
}
});

元素
未指向按钮。试试这个

    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>
var-app=angular.module('myApp',[]);
应用程序指令('searchAgainButton',函数($location){
返回{
限制:“AE”,
模板:“再次搜索”,
链接:函数(范围、元素、属性){
scope.changePath=函数(){
$location.path(“/index”)
}
}
}
});
//html

您是否尝试在作用域上使用$apply?@Anirudhmanalgevedhekar否,我是否应该将其放在$location下面。路径(“/index”)?
$location
未声明为依赖项。应该是
app.directive('searchAgainButton',['$location',function($location){//code here}])尝试了element.bind()而不是element.on()?element.bind已被弃用。最好在上使用