Javascript 是否使用数组中的内容预填充复选框?
我有一个复选框,它在Javascript 是否使用数组中的内容预填充复选框?,javascript,angularjs,checkbox,angularjs-directive,angularjs-scope,Javascript,Angularjs,Checkbox,Angularjs Directive,Angularjs Scope,我有一个复选框,它在ng click上调用一个函数,该函数插入到checkedItems数组中 如何使用checkedItemsarray中的元素预填充此复选框 以下是我的设置中的相关片段: {{c}} $scope.c_list_selected=[] $scope.checkSelection=功能(项){ 如果($scope.c\u list\u selected.indexOf(item)=-1){ $scope.c_list_selected.push(项目); }否则{ $sco
ng click
上调用一个函数,该函数插入到checkedItems
数组中
如何使用checkedItems
array中的元素预填充此复选框
以下是我的设置中的相关片段:
{{c}}
$scope.c_list_selected=[]
$scope.checkSelection=功能(项){
如果($scope.c\u list\u selected.indexOf(item)=-1){
$scope.c_list_selected.push(项目);
}否则{
$scope.c_list_selected.splice($scope.c_list_selected.lastIndexOf(项目),1);
}
}
我尝试了
ng bind
,ng model
和一些不同的ng checked
表达式。没有起作用。复选框绑定到布尔值。您必须构建checkedItems
数组的映射(也称为集合),如下所示:
$scope.checkedItemsSet={};
c\u列表\u已选择。forEach(功能(项目){
$scope.checkedItemsSet[item]=true;//再次填充
});
$scope.$watch(
“checkedItemsSet”,
函数(newV){
变量k,v;
copy([],c_list_selected);//清空列表
对于(k in newV){//再次填充映射的truey属性
v=新值[k];
如果(v){
c_list_selected.push(parseInt(k));//属性名实际上是字符串
}
}
},
true//按内容而不是按对象ID检查更改。
);
然后将每个复选框绑定到集合中的相应项
<input type="checkbox" ng-model="$scope.checkedItemsSet[c]"/>
您想为checkedItems数组中的每个值预先填充DOM复选框吗?是的。基本上,如果我选中了选项[5,'a','b',6]
,并选择了默认的c_列表=[5,'b']
;然后我希望在复选框中选择[5,'b']
值。