我有以下设置:
我有一个控制页面顶部导航栏的标题控制器。当我输入不同的路线时,我想更改导航布局。我遇到的问题是我只能在用户刷新页面时检测到路由。
示例:
<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版本的角度。
如何在我的标题控制器中获取该范围变量,以更新任何人都知道的路径更改?
答案 0 :(得分:1)
为了知道位置何时发生变化,您应该使用事件:
https://docs.angularjs.org/api/ngRoute/service/ $路线#事件
解决方案取决于您用于路由应用程序的实现。 以下是默认角度路由器的示例
$rootScope.$on( "$routeChangeStart", function(event, next, current) {
$scope.layout = 'newRoute';
}
我希望它有所帮助
答案 1 :(得分:0)
好的我想通了我需要使用$ routeChangeStart并更新$ routeScope变量然后附加到它。
全部谢谢!