我正在创建一个 Angular2 项目,并且遇到复选框的双向绑定问题。
我有一个名为 listItem 和 List 的类:
export class ListItem {
public count: number;
public value: string;
public checked: boolean;
constructor(count: number, value: string, checked: boolean) {
this.count = count;
this.value = value;
this.checked = checked;
}
}
export class MyList{
public category: string;
public listItem : ListItem [];
constructor(category: string, listItem : ListItem []) {
this.category = category;
this.listItem = listItem ;
}
}
我正在从 Azure 搜索中调用该列表,该列表运行正常。问题是当我将值设置为复选框时。
<div *ngFor="let list of myList; let listIndex = index;">
<div *ngFor="let item of list.listItems; let itemIndex = index;">
<input type="checkbox" [name]="list.category + item.value"
(change)="item.checked = !item.checked"
[ngModel]="item.checked" />
</div
</div>
但 onClick 的值也始终为 false。我尝试使用 [(ngModel)] 但也没有工作。我还尝试制作一个功能:
(change)="oncheck(listIndex, itemIndex)"
oncheck(listIndex: number, itemIndex: number) {
this.myList[listIndex].listItems[itemIndex].checked =
!this.myList[listIndex].listItems[itemIndex].checked;
}
但我收到了这个错误:
无法分配给对象“[object Object]”的只读属性“checked”
为什么会这样以及如何解决?谢谢你