AngularJS UI-Router:查看href或ui-sref是否与状态匹配

前端之家收集整理的这篇文章主要介绍了AngularJS UI-Router:查看href或ui-sref是否与状态匹配前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以目前,我正在使用UI-Router来管理一组tab指令.通过标签,我的意思是这个UI范例: http://www.hollance.com/wp-content/uploads/2011/11/Screenshot.png

每个选项卡都可以有一个标题,一个图标,以及与之关联的href或ui-sref.

例:

<my-tabs>
  <my-tab title="Tab 1" href="#/tab1">
    Content when tab 1 is active!
  </my-tab>
  <my-tab title="Tab 2" ui-sref="tabs.numberTwo()">
    Content when tab 2 is active!
  </my-tab>
</my-tabs>

无论如何,主要问题是当以编程方式或通过浏览器刷新更改状态时,我希望能够基于ui-sref或href属性知道要选择哪个选项卡. $state.(is | includes | contains)似乎没有做我需要的东西:我不能给$state.is一个href并询问它是否与当前状态匹配 – 我也不能给它一个ui-sref.

我也可以将一个stateName属性添加到选项卡中,但如果我不需要,我宁愿不这样做.

基本上,我希望能够在tab指令中执行此操作:

$rootScope.$on('$stateChangeSuccess',function() {
   if ($state.matchesHref(attrs.href) || $state.matchesSref(attrs.uiSref)) {
    selectThisTab();
  }
});

任何想做这件事的想法都会受到欢迎!

解决方法

猜你在找的Angularjs相关文章