angularjs中列表中各个项目的隔离范围

时间:2016-04-07 09:43:28

标签: javascript angularjs angularjs-scope

我有一个项目列表,我正在使用ng-repeat

填充
<ul>
    <li ng-repeat="item in items" ng-class="setClass" ng-click="assignClass()">{{item.name}}</li>
</ul> 

并在我的控制器中

$scope.assignClass = function(){
    $scope.setClass = "sampleClass";
}

当我这样做并点击任何一项时,所有项目都会添加 sampleClass

我需要这个场景,

当我点击该项目应该包含 sampleClass 的第一项时,当我点击第二项时,我希望第一项和第二项都应该 sampleClass

我如何实现这种情况?

2 个答案:

答案 0 :(得分:3)

我们正在使用的代码为您提到的所有列表项设置样式。 我稍微更改了代码,为无序列表中的单个项设置类。 通过使用所选项作为参数调用assignClass,您可以设置此项的类。

this

答案 1 :(得分:0)

item传递给assignClass函数。

<ul>
    <li ng-repeat="item in items" ng-click="assignClass(item)">{{item.name}}</li>
</ul> 

然后更改该项目的类

$scope.assignClass = function(item){
    $(item).toggleClass("sampleClass");
}