2016-04-26 40 views
3

我有以下设置:AngularJs RouteName不更新

我有一个头控制器,它控制页面的顶部导航栏。当输入不同的路线时,我想更改导航布局。我遇到的问题是我可以检测路线,但只有当用户刷新页面。

例子:

<div data-ng-controller="HeaderController" > 
... 
<span>Product Name - {{layout}}</span> 
... 
</div> 

我的头控制器:

angular.module('myApp.system').controller('HeaderController', ['$scope', 'Global', '$location', '$route', function ($scope, Global, $location, $route) { 
... 

    $scope.layout = $location.path().includes('projectEditor'); 
... 

}]); 

当你选择一个按钮,它会打开一个页面的路径:projectEditor/1。但是,只有刷新页面时才会更新范围。我的计划是在课堂上使用条件,但只有在用户刷新页面时才有效。

我正在使用1.5.5版本的角度。

如何在头控制器中获取该范围变量以更新任何人知道的路由更改?

回答

1

为了知道什么时候该位置的变化,你应该使用的事件:

https://docs.angularjs.org/api/ngRoute/service/ $#路由事件

该解决方案在您使用路由应用程序的实现依赖。 这里是默认的角度路由器为例

$rootScope.$on("$routeChangeStart", function(event, next, current) { 
    $scope.layout = 'newRoute'; 
} 

我希望这有助于

0

好吧,我想通了,我需要使用$ routeChangeStart和更新$ routeScope变量,然后附加到。

谢谢大家!