【发布时间】:2016-04-26 12:05:08
【问题描述】:
我想在检测到状态更改时访问父状态的名称。 到目前为止我的代码:
app.run(function($rootScope, $state, authProvider) {
$rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams) {
console.log(toState.name);
});
});
返回[parentState.childState]。一种可能性是使用正则表达式替换“。”之后的每个符号。但我想 ui-router 中必须有一个函数来获取父状态的名称。
我需要添加什么?获取[parentState]?
示例:
用户从状态login 到状态pets.dogs。 pets 是抽象的父状态,dogs 是它的子状态。
fromState.name 会返回 login 但我想要 pets。
编辑:
是的,解决方法toState.name.split(".")[0] 是可行的,但只能在受控条件下工作。
【问题讨论】:
-
fromState.name可以工作。 -
我不想要用户来自的状态,而是 toState 的子状态。例如,用户从“login”到“pets.dogs”。 'pets' 是一个抽象的父状态。
fromState.name会返回login但我想要pets。 -
如果名称是相对的,那么您可以操纵名称字符串并找出答案。不知道有没有可用的功能。
-
检查$state.$current.parent!
标签: javascript angularjs angular-ui-router