我正在創建一個指令,其中onclick將用戶帶到另一個頁面。有點像定製的「href」標籤。我希望$ location會照顧重定向功能,但由於我不知道的原因,這是行不通的。如果我在一個控制器中使用$ location,它可以工作,但是在一個Directive中,它不會。這裏是代碼:
angular.module("myAPP")
.directive('hpHref', ['$location' , function($location){
return {
restrict : "A",
link : function(scope, el, attr) {
el.bind('click', function(){
// more logic
console.log("Code reaches here:");
$location.path("/" + attr.hpHref);
});
}
}
}]);
也試過有控制器作爲指令的一部分。即
angular.module("myApp")
.directive('hpHref', function(){
return {
restrict : "A",
scope: {},
controller : ['$scope', '$location', function($scope, $location){
$scope.goToUrl = function (url) {
// some more logic
console.log("Code reaches here");
$location.path(url);
};
}],
link : function(scope, el, attr) {
el.bind('click', function(){
scope.goToUrl(attr.hpHref);
});
}
}
});
這也不起作用。問題是什麼?在指令中如何使用$ location?
它不起作用,因爲您試圖將路徑設置爲文字字符串「url」,而不是url參數的值。刪除$ location.path(「url」)中url的引號 –
@MarkSherretta這是在這裏複製代碼時的拼寫錯誤。我已更新問題 – dade
現在,$ apply.goToUrl是什麼? –