Plunkr
链接:https ://plnkr.co/edit/MOQ1evhsAocw3cJrYM0q?p=preview
ngSwitch
我的HTML 模板中有以下代码:
<ng-container [ngSwitch]="f.value.visitFrequency">
<ng-container *ngSwitchCase="'weekday'">
<div class="row form-group" ngModelGroup="weekday">
<div class="btn-group btn-group-justified" data-toggle="buttons" role="group">
<label class="btn btn-info"
*ngFor="let wday of wdays"
[class.active]="f.value.weekday[wday]">
<input type="checkbox"
[name]="wday"
[id]="wday"
ngModel
[value]="wday">{{ wday }}
</label>
</div>
</div>
</ng-container>
<ng-container>
<div class="row form-group" *ngSwitchDefault>
<p>Please choose something</p>
</div>
</ng-container>
</ng-container>
我有一个单选按钮组,它选择一个值,然后设置为visitFrequency
,例如weekday
。现在,每当我选择这个(其他可能的值相同)时,我都会收到以下错误:
ERROR TypeError: Cannot read property 'Monday' of undefined
Monday 是数组wdays
中循环创建复选框的第一个值(如果不清楚的话)。
我只收到此错误,我没有收到相同的错误Tuesday
。这始终是一致的。当我选择一个差异时visitFrequency
,我仍然收到错误,但同样只有正在循环的数组的第一项。
我怀疑表单值尚未启动,因此引发了错误。问题是在加载组件时它不会发生。