【发布时间】:2016-09-12 09:18:46
【问题描述】:
我有一个关于通过自定义指令改变路由的问题。我设置了一个菜单栏指令并设置了一个链接功能。此函数中的所有内容都可以正常工作,但通过 $location.path 转换 URL 却不能正常工作。即使在使用$rootScope.apply 之后,它也不会改变。
define([
'../module',
'../namespace'
],
function (module, namespace) {
module.directive(namespace + '.menubarDirective', function ($location, $rootScope) {
return {
restrict: 'EA',
replace: 'true',
templateUrl: 'scripts/app/menubar/views/menubar.html',
scope: {},
controller: function () {
},
link: function (scope, element, attrs) {
$("#menubarStoreButton").click(function () {
$('.active').removeClass('active');
$(this).addClass('active');
$location.path('/store');
$rootScope.$apply();
})
}
}
});
});
为了清楚起见,我使用 requirejs 和 $location 和 $rootScope 定义。奇怪的是,$location.path() 在替换之前给出了一个空路径。此外,“活动”类的放置按预期工作。
谢谢。
【问题讨论】:
标签: javascript angularjs routing directive