[英]angularjs ui-router is current state active
我在控制器中创建一个菜单。
$scope.menu = [
{
"title": "Home",
"state": "app.home",
"active": $state.is("app.home")
},
{
"title": "Product",
"state": "app.product",
"active": $state.is("app.product")
},
{
"title": "Category",
"state": "app.category",
"active": $state.is("app.category")
}
]
我设置了一个属性来指定活动状态。 如果我的州是最新的,那么有效财产将是真实的。
<ul class="nav nav-pills nav-stacked">
<li ng-repeat="item in menu" ng-class="{active:item.active}">
<a ui-sref="{{item.state}}"> {{item.title}}</a>
</li>
</ul>
但是当我改变状态时,活动属性不会被触发。
建议的解决方案更正:
<ul class="nav nav-pills nav-stacked">
<li ng-repeat="item in menu" ng-class="{active: $state.is('stateName')}">
<a ui-sref="{{item.state}}"> {{item.title}}</a>
</li>
</ul>
或者你可以简单地使用ui-sref-active :
例
给出以下模板:
<ul>
<li ui-sref-active="active" class="item">
<a href ui-sref="app.user({user: 'bilbobaggins'})">@bilbobaggins</a>
</li>
</ul>
当app状态为“app.user”(或任何子状态),并且包含值为“bilbobaggins”的状态参数“user”时,生成的HTML将显示为(注意'active'类):
<ul>
<li ui-sref-active="active" class="item active">
<a ui-sref="app.user({user: 'bilbobaggins'})" href="/users/bilbobaggins">@bilbobaggins</a>
</li>
</ul>
在指令链接时间内对类名进行插值一次(忽略对插值的任何进一步更改)。
可以以空格分隔格式指定多个类:
<ul>
<li ui-sref-active='class1 class2 class3'>
<a ui-sref="app.user">link</a>
</li>
</ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.