我有一个select
下拉列表。在下拉列表中选择每个值后,将使用ng-repeat
创建复选框。应该选择下拉列表中的所有值,并且必须检查相应的复选框并将其存储在数组中。
每当复选框发生变化时,我都会添加它或从数组中删除它。当我更改下拉列表时,检查以前下拉列表的复选框已消失。
如何根据存储选中值的数组来检查它们。
<div ng-repeat="flat in flatsArray" class="row" style="width:90%;">
<div class="col-md-2">
<input
type="checkbox" ng-true-value="{{flat.flat_id}}"
ng-false-value="'-1'"
//tried this but selctedFlats is an object
ng-checked="userEventData.selectedFlats.indexOf(sFlats[$index])" `userEventData.selectedFlats` is an object
ng-change="checkChanged(sFlats[$index], flat)"
ng-model="sFlats[$index]" />
</div>
<div class="col-md-10"><label for="{{flat.flat_no}}">{{flat.flat_no}}</label></div>
</div>
$scope.userEventData.selectedFlats
是已检查值的数组。
我本可以完成ng-checked="userEventData.selectedFlats.indexOf(sFlats[$index])"
但selectedFlats
包含对象。我想检查对象中的值
答案 0 :(得分:0)
NG-CHECKED正在寻找一个返回状态的表达式。 indexOf将返回一个数值&gt; = -1。虽然这样做可以创建更多的处理,因为它会反复运行函数来寻找变化。
我会推荐类似于以下内容的东西:当您获得单位数据时,在那里提供已检查的属性并将其分配给它需要的内容。它会创建更清晰的代码,并且您有1个操作对象。您可以随时根据需要对其进行解析。
ng-checked="flat.checked"
看起来更清晰,通过循环数组创建更少的处理,并且正在寻找变化。