我有一个关于通过自定义指令修改路径的快速问题。我设置了一个菜鸟主题,并建立了一个链接功能。此函数中的所有内容都可以正常工作,但是通过$location.path
进行的网址转换不起作用。即使使用$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()
在替换之前给出了一条空路径。此外,该课程的位置是活跃的'按预期工作。
感谢。
答案 0 :(得分:1)
尝试使用$ timeout -
$("#menubarStoreButton").click(function() {
$('.active').removeClass('active');
$(this).addClass('active');
$timeout(function() {
$location.path('/store');
});
})
答案 1 :(得分:1)