使用angularjs选择多个列表项

Adi*_*thi 2 list angularjs

我正在尝试从无序列表中的元素中选择一个特定的列表项.它应该显示为已选中,我需要通过更改一些背景来显示.

我试图使用$index未定义的,因为我试图在<li>元素中使用它.

我可以从内部实现这一点angularjs,而无需使用复选框或jQuery吗?

ovm*_*mjm 8

这取决于您的特殊需要,但也许您可以直接在项目中编写选择结果,如此

<ul>
    <li ng-repeat="item in items" ng-class="{'selected':item.selected}">
        <a href="" ng-click="toggle(item)">{{item.text}}</a>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

哪里

$scope.toggle = function (item) {
    item.selected = !item.selected;
};
Run Code Online (Sandbox Code Playgroud)

在这里看一个极简主义的演示:http://jsfiddle.net/9qLm4/1/

或者您可以使用$index将您的选择存储到不同的array类似

<ul>
    <li ng-repeat="item in items" ng-class="{'selected':selection.indexOf($index)!=-1}">
        <a href="" ng-click="toggle($index)">{{item}}</a>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

哪里

$scope.selection = [];

$scope.toggle = function (idx) {
    var pos = $scope.selection.indexOf(idx);
    if (pos == -1) {
        $scope.selection.push(idx);
    } else {
        $scope.selection.splice(pos, 1);
    }
};
Run Code Online (Sandbox Code Playgroud)

在这里看一个极简主义的演示:http://jsfiddle.net/j5T2y/2/

我偏爱前者,这更加一致.