Angular 1.4
我有一个带有复选框的简单ng-repeat
。目标是将customer.Id
添加到$scope.holdsChosenCustomerIds
中。我需要$scope.holdsChosenCustomerIds
像[3,78,445,789]这样的哑数组,基本上无论用户选择什么。
$scope.holdsChosenCustomerIds= [];
<div ng-repeat="customer in customers">
<input type='checkbox' ng-model="holdsChosenCustomerIds[$index]==???" ????????? />
</div>
此时陷入困境
答案 0 :(得分:1)
只需使用ng-repeat实例作为模型
喜欢这个
<div ng-repeat="customer in customers">
<input type='checkbox' ng-model="customer.isChecked" />
</div>
您可以从$scope.customers
如果您需要选中真项
你可以这样尝试
$scope.holdsChosenCustomerIds= $scope.customers.filter(function(x){ return x.isChecked; });
答案 1 :(得分:0)
您可以使用ng-change
<div ng-repeat="customer in customers">
<input type='checkbox' ng-model="customer.selected" ng-change="selectUnselect()" />
</div>
在你的控制器中:
$scope.selectUnselect = function() {
var customer = this.customer;
if (customer.selected) {
$scope.holdsChosenCustomerIds.push(customer.id);
} else {
var idIndex = $scope.holdsChosenCustomerIds.indexOf(customer.id);
if (idIndex > -1) {
$scope.holdsChosenCustomerIds.splice(idIndex, 1);
}
}
};