Migrację mojej aplikacji opartej na AngularJS używam routera ui zamiast wbudowanego routingu. Mam to skonfigurowane, jak pokazano poniżej
.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' }
})
});
Jak mogę użyć zmiennej pageTitle, aby dynamicznie ustawić tytuł strony? Mogłem to zrobić, korzystając z wbudowanego routingu
$rootScope.$on("$routeChangeSuccess", function(currentRoute, previousRoute){
$rootScope.pageTitle = $route.current.data.pageTitle;
});
a następnie powiąż zmienną w HTML, jak pokazano poniżej
<title ng-bind="$root.pageTitle"></title>
Czy istnieje podobne zdarzenie, do którego mogę podłączyć się za pomocą routera ui? Zauważyłem, że istnieją funkcje „onEnter” i „onExit”, ale wydają się one być powiązane z każdym stanem i będą wymagać ode mnie powtórzenia kodu w celu ustawienia zmiennej $ rootScope dla każdego stanu.