为什么 ng-class 不工作?
Why isn't ng-class working?
我想用 AngularJS 突出显示当前选择的菜单项。
我有这个 HTML:
<li ng-repeat="m in menuLinks">
<a ng-class="{active : isActive('{{m.url}}')}" href="{{m.url}}" active-link="active" onclick="closeMenu()">{{m.title}}</a>
</li>
控制器中的这个:
$scope.isActive = function (viewLocation) {
alert(viewLocation);
if ($location.path().indexOf(viewLocation) === 0) {
return true;
} else {
return false;
}
};
函数 isActive() 被调用是因为警报出现了,但是当我检查元素时我得到了这个:
<a class="ng-binding" ng-class="{active : isActive('/#/sessions')}" href="/#/sessions" active-link="active" onclick="closeMenu()">Sessions</a>
我在这里错过了什么?
$location.path() 不 return 数组,而 indexOf 搜索数组中项目的索引。
你不需要ng-class
中的表达式,只需要像这样使用它:
<a ng-class="{active : isActive(m.url)}" ng-href="{{m.url}}" active-link="active" ng-click="closeMenu()">{{m.title}}</a>
我建议使用 ng-href
而不是 href 和 ng-click
而不是 onclick ;)
我想用 AngularJS 突出显示当前选择的菜单项。 我有这个 HTML:
<li ng-repeat="m in menuLinks">
<a ng-class="{active : isActive('{{m.url}}')}" href="{{m.url}}" active-link="active" onclick="closeMenu()">{{m.title}}</a>
</li>
控制器中的这个:
$scope.isActive = function (viewLocation) {
alert(viewLocation);
if ($location.path().indexOf(viewLocation) === 0) {
return true;
} else {
return false;
}
};
函数 isActive() 被调用是因为警报出现了,但是当我检查元素时我得到了这个:
<a class="ng-binding" ng-class="{active : isActive('/#/sessions')}" href="/#/sessions" active-link="active" onclick="closeMenu()">Sessions</a>
我在这里错过了什么?
$location.path() 不 return 数组,而 indexOf 搜索数组中项目的索引。
你不需要ng-class
中的表达式,只需要像这样使用它:
<a ng-class="{active : isActive(m.url)}" ng-href="{{m.url}}" active-link="active" ng-click="closeMenu()">{{m.title}}</a>
我建议使用 ng-href
而不是 href 和 ng-click
而不是 onclick ;)