为什么ng-class不工作?

时间:2015-11-29 14:46:53

标签: javascript html angularjs ng-class

我想用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>

我在这里缺少什么?

2 个答案:

答案 0 :(得分:3)

您不需要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;)

答案 1 :(得分:1)

$ location.path()不返回数组,而indexOf搜索数组中项目的索引。