【发布时间】:2016-10-24 09:32:49
【问题描述】:
我想根据我的 Angular 应用程序中的状态设置标题。它工作得很好,但如果没有在子状态上定义标题,我想回退到父级的标题属性。
这是我目前所拥有的:
在我的应用运行块中:
...
$rootScope.$on('$stateChangeSuccess', function (event, current, previous) {
if (current.hasOwnProperty('title')) {
$rootScope.title = current.title;
}
});
...
在我的模块路径中
.state('main.parent', {
url: '/parent',
controller: 'ParentController',
controllerAs: 'vm',
templateUrl: 'app/parent.html',
title: 'Parent',
})
.state('main.parent.child', {
url: '/child',
controller: 'ChildController',
controllerAs: 'vm',
templateUrl: 'app/child.html'
})
在代码检查期间,我发现$stateChangeSuccess 被触发了两次,一次是针对父级,然后是针对子级。当孩子被调用时,我试图访问current.parent,但它没有这样的属性。有什么办法可以访问吗?
更新
我看到了这些问题: get parent state from ui-router $stateChangeStart, get parent state from ui-router $stateChangeStart 但是他们都没有对这个问题有明确的答案(除了后一个中的状态分裂黑客,但我宁愿避免这种情况)。
【问题讨论】:
-
检查 $state.$current.parent!
标签: javascript angularjs angular-ui-router