UI-Router

时间:2015-09-10 21:52:18

标签: javascript angularjs routing angular-ui-router page-title

使用UI-Router时,如何处理特定于内容的页面标题?

我可以正常处理普通页面标题,例如:

.state('login', {
    url: '/login',
    views: {
        "navbar": {
            template: normalNavbarTemplate
        },
        "content": {
            template: '<login authenticated="(bCtrl.userSession && bCtrl.userSession.isAuthenticated)"></login>'
        }
    },
    title: 'My Website (0.2) - Login'
})

然后:

$rootScope.$on('$stateChangeSuccess', function (evt, toState) {
    $window.document.title = toState.title;
});

但是当您希望标题包含使用 resolve 获得的内容特定内容时会发生什么?

我猜你可以将 $ window 注入你的组件,并设置标题,但感觉很麻烦。有没有更好的食谱我可能错过了?

由于

1 个答案:

答案 0 :(得分:3)

您可以在resolve:

中更改title属性
resolve: {
    content: function($http) {
        return $http.get('some_url').then(function(result) {

            this.self.title = result.data.title; // set the title property to whatever you like

            return result;
        }.bind(this));
    }
}