AngularJS $位置未更新

时间:2015-03-11 10:27:37

标签: angularjs location ng-view

我是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();
}]);

Here is the plunker with the full example

1 个答案:

答案 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();
});

}]);