Angular ui-router的ui-sref-active父母不工作

时间:2014-09-01 10:13:14

标签: angularjs angular-ui angular-ui-router

我知道自从0.2.11 sref-active被激活后,即使某些嵌套子项被激活也是如此。然而,我变得奇怪的行为。

在这篇文章中:http://plnkr.co/edit/Tdm2OBeIf8t56gs5qis2?p=preview一切正常 - 当你去#34;第一部分"并点击子项目,"第一部分"仍然大胆。但是有一个问题 - 当你点击"第一部分"时,它通常会自动选择第一个子项。目前你没有选择任何东西。它是国家指数。第一个'而不是' index.first.sub1'。

我尝试通过改变"第一部分"来自" index.first'的ui-sref来解决这个问题:http://plnkr.co/edit/rsiyROmprf73I3qEgAMp?p=preview到' index.first.sub1'。

由此:

<li><a ui-sref="index.first" ui-sref-active="bold">First section</a></li>

对此:

<li><a ui-sref="index.first.sub1" ui-sref-active="bold">First section</a></li>

它打破了。如果您点击子项,只有&#39; sub1&#39;将获得&#34;第一部分&#34;要大胆。为什么会这样?我希望所有三个人都能做到#34;第一部分&#34;粗体。

1 个答案:

答案 0 :(得分:1)

我们可以使用.when()设置。查看此更新的plunker

$urlRouterProvider.when('/index/first', '/index/first/sub1'); 

因此,在'index.first'被解雇之前,我们会重定向到其第一个子状态

请参阅:

  

参数:

     
      
  • 什么字符串| RegExp | UrlMatcher要重定向的传入路径。
  •   
  • handler String |功能您要将用户重定向到的路径。
  •   
     

handler as String

     

如果handler是一个字符串,则将其视为重定向,并根据match的语法进行插值(例如,像RegExp的String.replace(),或者像UrlMatcher模式一样)。

app.config(function($urlRouterProvider){
    // when there is an empty route, redirect to /index   
    $urlRouterProvider.when('', '/index');

    // You can also use regex for the match parameter
    $urlRouterProvider.when(/aspx/i, '/index');
})