有没有办法区分国家是直接触发还是通过孩子?

时间:2018-01-12 14:21:57

标签: angularjs angular-ui-router

我需要找到一种方法来了解用户是直接导航到父状态还是因为正在激活孩子而激活状态。

我们说我有这些状态:

var main = {
   name: 'main',
   url: '/main',
   component: 'main'
}

var child = {
   name: 'main.child',
   url: '/child',
   component: 'child'
}

我在主要组件的控制器中有一个功能,我只想在用户导航www.mysite.com时运行!#/ main,如果用户点击了网址www.mysite,则不运行它。 COM#!/主/子

有可能实现吗?

我在router-ui上使用AngularJS和最新版本。

1 个答案:

答案 0 :(得分:0)

我找到了一个非常简单明了的解决方案,可以通过检查$state.current.name来实现。不知道为什么我早些时候没有。

我的解决方案是这样的

ctrl.$onInit = function(){
   if($state.current.name === 'main'){
       // do something
   } 
   else if ($state.current.name === 'main.child'){
       // do something else
   }
   else {
       // do completely something else
   }
}

也许这有助于将来有人。