2016-04-26 2 views
3

Я имею следующие настройки:AngularJs RouteName не обновляя

Я имею контроллер заголовка, который управляет верхней Navbar страницы. При вводе другого маршрута я хочу изменить схему навигации. Проблема, с которой я сталкиваюсь, заключается в том, что я могу обнаружить маршрут, но только когда пользователь обновит страницу.

Пример:

<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, а затем приложить к этому.

Спасибо всем!