【问题标题】:get parent state from ui-router $stateChangeStart从 ui-router $stateChangeStart 获取父状态
【发布时间】: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.dogspets 是抽象的父状态,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


【解决方案1】:

我认为你可以做到toState.parent.name

【讨论】:

  • 这行不通,toState 中没有父级
  • @ojuskulkarni 这取决于你如何配置你的状态。在我的应用程序中,我使用this method 设置父状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 2016-06-05
  • 2014-09-22
相关资源
最近更新 更多