Javascript ng类条件有效,但仅当我刷新页面时有效
我有导航指令;这很好用。。。除非我更改页面,否则在我手动刷新网站之前,“活动”类不会添加到相关链接 我的ng类所在的代码:Javascript ng类条件有效,但仅当我刷新页面时有效,javascript,angularjs,ng-class,Javascript,Angularjs,Ng Class,我有导航指令;这很好用。。。除非我更改页面,否则在我手动刷新网站之前,“活动”类不会添加到相关链接 我的ng类所在的代码: <ul class="nav navbar-nav"> <li ng-repeat="item in nav" ng-class="{'active':(item.alias==current)}"> <a ui-sref="{{item.alias}}">{{item.name}}</a> </
<ul class="nav navbar-nav">
<li ng-repeat="item in nav" ng-class="{'active':(item.alias==current)}">
<a ui-sref="{{item.alias}}">{{item.name}}</a>
</li>
</ul>
我的印象是,这应该是开箱即用的!是因为我在使用指令吗?页面加载时,您的
导航功能只运行一次。
和$rootScope.current
仅设置一次。
看起来您正在使用ui路由器。尝试将该行放入$stateChangeSuccess
事件回调:
$rootScope.$on('$stateChangeSuccess',
function(event, toState, toParams, fromState, fromParams) {
$rootScope.current = toState.name;
}
)
与其在$rootScope中跟踪当前状态名,不如像这样直接检查状态名
ng-class="{ 'active': $state.includes('state.name')}"
这也适用于嵌套状态。例如,如果您的状态如下所示,则如果状态为子项1
home
item1
subItem1
很可能-不确定您使用的是哪个版本,但是…-您可以为此使用ui路由器中的ui sref active属性
<ul class="nav navbar-nav">
<li ng-repeat="item in nav" ui-sref-active="active">
<a ui-sref="{{item.alias}}">{{item.name}}</a>
</li>
</ul>
-
{{item.name}
什么是当前版本?确保它是动态的。哦,它是当前页面;在指令函数中,我得到如下结果:$rootScope.current=$state.current.name;这个解决方案可能有效,但它不能回答问题。
<ul class="nav navbar-nav">
<li ng-repeat="item in nav" ui-sref-active="active">
<a ui-sref="{{item.alias}}">{{item.name}}</a>
</li>
</ul>