Я мігрую свою програму на основі AngularJS для використання ui-роутера замість вбудованої маршрутизації. У мене це налаштовано, як показано нижче
.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home');
$stateProvider
.state('home', {
url: '/home',
templateUrl : 'views/home.html',
data : { pageTitle: 'Home' }
})
.state('about', {
url: '/about',
templateUrl : 'views/about.html',
data : { pageTitle: 'About' }
})
});
Як я можу використовувати змінну pageTitle для динамічного встановлення заголовка сторінки? Використовуючи вбудовану маршрутизацію, я міг би зробити
$rootScope.$on("$routeChangeSuccess", function(currentRoute, previousRoute){
$rootScope.pageTitle = $route.current.data.pageTitle;
});
а потім прив’яжіть змінну в HTML, як показано нижче
<title ng-bind="$root.pageTitle"></title>
Чи є подібна подія, яку я можу підключити за допомогою ui-роутера? Я помітив, що існують функції "onEnter" і "onExit", але вони, здається, прив'язані до кожного стану, і мені потрібно буде повторити код, щоб встановити змінну $ rootScope для кожного стану.