我在ng-repeat中有一些离子复选框,最初检查了一些复选框。我似乎无法在表单提交上绑定这些初始值。以下是我到目前为止所做的工作:
HTML:
<ion-list>
<label ng-repeat="item in items">
<ion-checkbox ng-model="item.checked" ng-checked="itemCheck(item)">
{{item.name}}
</ion-checkbox>
</label>
</ion-list>
JS:
$scope.items = [{name:"name1"},{name:"name2"},{name:"name3"},{name:"name4"}];
$scope.itemCheck = function(data){
$scope.checkedItems = [{name:"name2"},{name:"name3"}];
$scope.checkedResult = $scope.checkedItems.filter(function(item) {
return item.name == data.name;
});
if ($scope.checkedResult.length > 0){
return true;
} else {
return false;
}
}
答案 0 :(得分:0)
将ng-model
和ng-checked
放在一起很奇怪。
我只使用ng-model
,我没有问题。
只需保持模型简单:而不是$scope.checkedItems = [{name:"name2"},{name:"name3"}];
为什么不设置每个项目的检查属性?
像这样初始化你的项目:
$scope.items = [{name:"name1"},{name:"name2", checked: true},{name:"name3", checked: true},{name:"name4"}];
答案 1 :(得分:-1)
试试这种方式。
HTML
<ion-list>
<label ng-repeat="item in items">
<ion-checkbox ng-model="item.checked" ng-checked="itemCheck(item,$index)">
{{item.name}}
</ion-checkbox>
</label>
</ion-list>
JS
$scope.items = [{name:"name1"},{name:"name2"},{name:"name3"},{name:"name4"}];
$scope.itemCheck = function(data,index){
$scope.checkedItems = [{name:"name2"},{name:"name3"}];
$scope.checkedResult = $scope.checkedItems.filter(function(item) {
return item.name == data.name;
});
if ($scope.checkedResult.length > 0){
$scope.items[index].checked=true;
return true;
} else {
$scope.items[index].checked=false;
return false;
}
}
我在codepen中测试过它的确有效! 我真的不知道你是否正在寻找它,但请告诉我!