AngularJs RouteName未更新

时间:2016-04-26 11:21:44

标签: javascript angularjs

我有以下设置:

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

示例:

<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版本的角度。

如何在我的标题控制器中获取该范围变量,以更新任何人都知道的路径更改?

2 个答案:

答案 0 :(得分:1)

为了知道位置何时发生变化,您应该使用事件:

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

解决方案取决于您用于路由应用程序的实现。 以下是默认角度路由器的示例

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

我希望它有所帮助

答案 1 :(得分:0)

好的我想通了我需要使用$ routeChangeStart并更新$ routeScope变量然后附加到它。

全部谢谢!