2016-04-26 46 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變量,然後附加到。

謝謝大家!