最佳答案
我正在迁移我的 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 变量。