angularjs – Angular UI-Router从视图中获取当前状态

前端之家收集整理的这篇文章主要介绍了angularjs – Angular UI-Router从视图中获取当前状态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
考虑从ui-router文档中获取的以下状态:
.state('state1',{
  url: '/state1',templateUrl: 'partials/state1.html'
  controller: 'State1Ctrl'
})
.state('state1.list',{
  url: '/list',templateUrl: 'partials/state1.list.html',})

而状态“state1”的“partials / state1.html”的控制器:

.controller('State1Ctrl',function () {

});

是否有任何内置功能从控制器内或模板内确定控制器/模板相关联的状态?

例如:

.controller('State1Ctrl',function ($state) {
  console.log($state.this); // state1
});

如果没有内置的解决方案,你如何“装饰”$ state或$ stateParams来包含这些信息?

我想出的唯一的解决方案是使用$ state.get(),然后找到具有控制器或模板值的状态。这似乎令人难以置信的凌乱。

无法找到这个记录在任何地方,所以我查看源代码

有一个名为$ uiView的数据字段附加到ui-view元素,它包含视图名称和关联状态。你可以这样得到这样的状态:

elem.closest('[ui-view]').data('$uiView').state

甚至

elem.inheritedData('$uiView').state

猜你在找的Angularjs相关文章