为什么 *ng 中的 mat-复选框没有从模型中获取最新的 [选中] 值


<ng-container *ngFor="let item of items">
     >>>>>>>>LINE 2>>>>>>>>>> {{item.checkedOrUnchecked}}
     <mat-checkbox [checked]="item.checkedOrUnchecked"></mat-checkbox>

上面代码中的第 2 行始终与其他地方所做的更改同步。

但是,mat-checkbox 不会更新为 true/false。它在这里失去了上下文。即使 *ngFor 为每次迭代创建一个子上下文,当 LINE 2 能够选择最新更新时,为什么 mat-checkbox 无法同步。

我注意到的一件事是,如果item.checkedOrUncheck的初始值为假,如果更改为true,则选中mat-checkbox。但是,进一步切换 item.checked或Uncheck从真到假或假到真没有任何影响。

问题可以复制到此处 https://stackblitz.com/edit/angular-material2-checkbox-issue-zyjhd3

请有人建议。

更改此内容:

[checked]="item.checkedOrUnchecked"

[(ngModel)]="item.checkedOrUnchecked"

这是它的工作示例,请看一下:

https://stackblitz.com/edit/angular-material2-checkbox-issue


您的问题演示:https://stackblitz.com/edit/angular-material2-checkbox-issue-zyjhd3

问题:

1) *ngFor="let property of properties;let i =index;"中缺少let i =index;

2)所以没有从这里传递正确的值saveProperty($event, i)

3)this.properties[index][key] = property[key]property[key] stringboolean,所以需要转换为布尔值

已解决 : https://stackblitz.com/edit/angular-material2-checkbox-issue-tbutvp

最新更新