大家好,我是一个新手,我创建了一个动态列表的复选框。因为有的时候我会从API中得到选择的值,我需要将其绑定到复选框中。因此,我将有如下的代码
<div *ngFor="let b of result?.category">
<mat-checkbox (change)="onChangeCheckbox($event)" [value]="b.RefAccess?.accessId"
[checked]="b.RefAccess?.selected" [(ngModel)]="b.BoRefAccess?.selected"
[ngModelOptions]="{standalone: true}">
{{b.BoRefAccess?.accessDesc}}
</mat-checkbox>
</div>
Error "Empty expressions are not allowed ng , Parser Error: The '?.' operator cannot be used in the assignment at column 25 in [b.BoRefAccess?.selected=$event] in..."
我现在的主要问题是ngModel绑定不能是可选的,但我需要它是可选的,因为有的时候API会给我null list item。所以我不知道该如何处理它。
我还遇到了另一个方法,它可以跟踪onChange事件,但它只包括被onChanged的复选框,那些被选中的复选框不包括在内。
elvis操作符不能用于赋值。你应该用更明确的方式声明它。
取而代之的是
[(ngModel)]="b.BoRefAccess?.selected"
使用
[ngModel]="b.BoRefAccess?.selected" (ngModelChange)="b.BoRefAccess.selected=$event"
所以,我想也许你可以创建另一个变量来与ngModel绑定。在你创建的函数onChangeCheckbox中,如果b.RefAccess.selected的值与null不同,你可以更新它。