我是AngularJS的新手,如果这是一个愚蠢的问题,我道歉。我现在挣扎了几天,只是无法理解它。
我有一个带有主控制器的应用程序和带有自己的控制器的三个部分。一切正常,但主用控制器中的$位置在用户导航到视图时不会改变。但浏览器始终显示正确的URL。
sdsApp.controller('mainCtrl', ['$location', function($location) {
var self = this;
self.url = $location.absUrl();
}]);
但是,partial的控制器将始终返回正确的当前位置:
sdsApp.controller('homeCtrl', ['$location', function($location) {
var self = this;
self.url = $location.absUrl();
}]);
答案 0 :(得分:0)
我找到了解决方案:主控制器必须侦听事件$ locationChangeSuccess然后只读取$ location.absUrl()。
myApp.controller('mainCtrl', ['$scope','$location', function($scope, $location) {
var self = this;
$scope.$on('$locationChangeSuccess', function(event) {
self.url = $location.absUrl();
});
}]);