【发布时间】:2016-10-14 14:23:00
【问题描述】:
我正在尝试实现用于选择表格行的复选框。该表是用 ng-repeat 构建的,我想包含一个文本输入来过滤表。当一个复选框被选中时,该项目的 ID 被推送到一个数组中,并且当该框被取消选中时它被删除。我的问题是,在操作过滤器后,复选框不会保持选中状态。如何正确地将复选框绑定到我的数组?
Plunk - https://plnkr.co/edit/U0N3vDTZAULC6CFIdhVp?p=preview
HTML:
<tr ng-repeat="name in names | filter: search">
<td>
<input type="checkbox" class="input-sm" ng-checked="selectedNames.indexOf(name.id) > -1" ng-click="addName(name.id)"/>
</td>
<td>{{name.name}}</td>
<td>{{name.age}}</td>
</tr>
JS:
$scope.addName = function (id) {
var idx = selectedNames.indexOf(id);
if (selectedNames.indexOf(id) == -1) {
console.log('Pushing: ', id)
selectedNames.push(id);
console.log(selectedNames);
} else {
selectedNames.splice(idx,1);
console.log(selectedNames);
}
【问题讨论】:
标签: javascript angularjs checkbox angularjs-ng-repeat angularjs-filter