我有一个需要用复选框表示的项目数组(itemsarray)。我有另一个数组(addItem),其中包含已检查的项目。
每当addItem由于用户选择而在后台更改时,复选框都不会更新。此外,如果从addItem中手动删除了元素,则该复选框不会更新。
<div class="form-group">
<label class="control-label col-sm-12" for="secname">Choose Your Items</label>
<div class="col-sm-10" *ngFor="let item of itemsarray; let i=index">
<input type="checkbox" [checked]='additem.indexOf(item)>-1' (click)='checkditem($event,item)' >{{item.itemname.itemname}}
</div>
</div>
答案 0 :(得分:0)
我相信addItem.indexOf(item)在比较引用时会返回-1。
尝试创建一个函数(按属性)检查addItem数组是否包含item对象。
例如
itemChecked(item)
{
const res = addItem.find(i => i.id === item.id);
return res !== undefined;
}
在您看来:
<input type="checkbox" [checked]='itemChecked(item)' (click)='checkditem($event,item)'>{{item.itemname.itemname}}