【发布时间】:2021-05-15 21:25:00
【问题描述】:
Angular 我正面临这个问题
ERROR TypeError: this.form.value.practiceSet[i].skillone.setValue is not a function
在此我需要更改数组中技能的值,但我面临如何修复该值的问题 我的 ts 是
skillset(i){
this.form.value.practiceSet[i].skilltwo.setValue(idval)
}
我的json格式是
{
"game":"football",
practiceSet:[
{
"skillone":"running",
"skilltwo":"chasing"
},{
"skillone":"jump",
"skilltwo":"gym"
},
]
}
我需要更改“skillone”的特定值:“running”位于 this.form.value.practiceSet[i].skilltwo.setValue(idval).. 我得到了“idval”中的值,但我得到了错误
我的 HTML 是
<ng-container formArrayName="practiceSet" *ngFor="let group of practiceSetArray.controls; let i = index;">
<tr [formGroupName]="i">
<td>{{i+1}}</td>
<td>
<mat-form-field>
<input matInput readonly formControlName="Skill set"></mat-form-field>
</td>
我的 onit(初始化)
this.form = this.fb.group({
practiceSet: this.fb.array([
this.practiceSetArray()
])
})
practiceSetArray(){
let group = new FormGroup({
skillone: new FormControl(''),
skilltwo: new FormControl('')
})
}
【问题讨论】:
-
请提供 HTML 和 ts 文件进行检查。我会很容易检查哪里出错了。最美好的祝愿:-)
-
好的,谢谢,现在我在@Linker上面编辑了我的问题
-
你想设置组件初始化的值。如果你想设置组件初始化时的值,你需要动态创建formGroup并插入到formArray中
-
是的,我初始化了表单组和表单数组@Msk Satheesh
-
获取控件然后设置。使用如下 this.form.value.practiceSet[i].controls.skilltwo.setValue(idval)
标签: javascript angular typescript angular8