angular - 在 ngFor 中使用选择元素时出现“属性为只读”错误
问题描述
我有一个名为的对象数组,timingOfApptReminders
并用ngFor
. 数组看起来像这样:
[
{
daysUntilAppt: 1,
hoursUntilAppt: 0,
minutesUntilAppt: 0,
},
{
daysUntilAppt: 0,
hoursUntilAppt: 1,
minutesUntilAppt: 0,
},
]
我的ngFor
循环为每个对象显示一行,并且对象<mat-select>
内部的每个属性都有一个元素。
正确显示ngFor
每个对象,但是,如果我单击其中一个mat-select
元素并进行更改,则会收到以下错误:
错误类型错误:““daysUntilAppt”是只读的”
这是我的代码:
<div *ngFor="let item of timingOfApptReminders; index as i; let last = last">
<!-- Days -->
<mat-form-field>
<mat-label>Days</mat-label>
<mat-select [(ngModel)]="item.daysUntilAppt" name="daysUntilAppt-{{i}}">
<mat-option
*ngFor="let day of days"
[value]="day"
>
{{day}}
</mat-option>
</mat-select>
</mat-form-field>
<!-- Hours -->
<mat-form-field>
<mat-label>Hours</mat-label>
<mat-select [(ngModel)]="item.hoursUntilAppt" name="hoursUntilAppt-{{i}}">
<mat-option
*ngFor="let hour of hours"
[value]="hour"
>
{{hour}}
</mat-option>
</mat-select>
</mat-form-field>
<!-- Minutes -->
<mat-form-field>
<mat-label>Minutes</mat-label>
<mat-select [(ngModel)]="item.minutesUntilAppt" name="minutesUntilAppt-{{i}}">
<mat-option
*ngFor="let minute of minutes"
[value]="minute"
>
{{minute}}
</mat-option>
</mat-select>
</mat-form-field>
</div>
我怀疑这与我正在做的方式有关[(ngModel)]
,但我不太确定如何以正确的方式进行操作,以便我更改正确对象中正确属性的值。我究竟做错了什么?
解决方案
推荐阅读
- ios - Apple 代码兑换 - presentCodeRedemptionSheet() 未提供任何反馈
- amazon-web-services - Terraform EKS 配置图被禁止
- python - 有效地将具有反向字典的文件读取到DataFrame
- git - 如何从远程仓库中提取特定提交
- flutter - 如何使用 Flutter 中的 Input Formatter 将用户的输入文本格式化为 MM/DD/YYYY
- symfony - 在 symfony 中,有没有办法在使用模拟时更新上下文?
- reactjs - React 在每次路由更改时执行通用代码
- docker - zypper 不能在新鲜的 openuse/tumbleweed 容器中工作
- wagtail - 表单未在 wagtail 管理员中提交
- django - 如何从 django 表单中的模型中获取字段名称?