Estoy migrando mi aplicación basada en AngularJS para usar ui-router en lugar del enrutamiento integrado. Lo tengo configurado como se muestra a continuación
.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' }
})
});
¿Cómo puedo usar la variable pageTitle para establecer dinámicamente el título de la página? Usando el enrutamiento integrado, podría hacer
$rootScope.$on("$routeChangeSuccess", function(currentRoute, previousRoute){
$rootScope.pageTitle = $route.current.data.pageTitle;
});
y luego enlazar la variable en HTML como se muestra a continuación
<title ng-bind="$root.pageTitle"></title>
¿Hay un evento similar al que pueda conectarme usando ui-router? Me di cuenta de que hay funciones 'onEnter' y 'onSalir', pero parecen estar vinculadas a cada estado y requerirán que repita el código para establecer la variable $ rootScope para cada estado.