我目前正在使用此问题中的指令来更改我的页面标题。
Set Page title using UI-Router
然后,在我的app.js文件中,我将pageTitle附加到数据,如下所示:
.state('home', {
url: '/home'
templateUrl: 'home.html'
controller: 'homeController'
data: {
pageTitle: 'Home'
}
})
但是,例如,如果homeController有一个从服务中获取的$scope.todaysDate
变量。有没有办法在我的路由器中访问该变量,所以我可以将数据和pageTitle更改为:
data: {
pageTitle: 'Home ' + $scope.todaysDate
}
我可以进入控制器并使用$rootScope.pageTitle = 'some value'
当我查看Batarang控制台工具时,我可以看到它将变量更改为'some value'
,但实际页面标题不会更改
答案 0 :(得分:2)
在这种情况下,也许resolve会起作用。如果要确保状态控制器始终可以使用某些数据,则可以使用解决方法。例如,假设我有一个叫做的服务,"日历"它暴露了一个名为" getTodaysDate"的函数。我可以做到以下几点:
.state('home', {
url: '/home',
templateUrl: 'home.html',
controller: 'homeController',
resolve:{
pageTitle: function(calendar){
return 'Home ' + calendar.getTodaysDate();
}
}
})
现在" pageTitle"将被解决并注入" homeController"在国家改变之前。希望这会有所帮助。