我知道自从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;粗体。
答案 0 :(得分:1)
我们可以使用.when()
设置。查看此更新的plunker
$urlRouterProvider.when('/index/first', '/index/first/sub1');
因此,在'index.first'
被解雇之前,我们会重定向到其第一个子状态
请参阅:
when()
for redirection (小引用:) 参数:
- 什么字符串| 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');
})