在我的模板中,我有:
<input *ngIf="!radio" #chk [disabled]="loadingInProggress || !currentDimensionExists || !checkCurrentMetaID()" tabindex="-1"
type="checkbox" (change)="checkboxChanged(chk.checked);" [(ngModel)]="active" class="dataset-checkbox" />
<div *ngIf="loadingCompleted && chk.checked"
class="colorSelector"
[(colorPicker)]="hexColor" (colorPickerChange)="colorPickerChange()"
[ngStyle]="{'background':hexColor}">
</div>
我不能使用ngIf中的chk.checked来基于chk.checked的值进行选择。我在js控制台中收到此错误:
ERROR TypeError: Cannot read property 'checked' of undefined
这是为什么?
答案 0 :(得分:1)
chk
在这里定义:
<input *ngIf="!radio" #chk [...]>
如果radio
为真,则此<input>
不包含在DOM中,导致chk
为undefined
。
因此,chk.checked
将在此提取物中产生错误:
<div *ngIf="loadingCompleted && chk.checked" [...]>
答案 1 :(得分:0)
尝试:
*ngIf="loadingCompleted && chk?.checked"