以嵌套形式更改FormBuilder数组项
it1352
帮助1人
问题说明
根据API文档,更改嵌套值的正确方法是使用方法 patchValue
According to the API documentation the proper way to change nested values is to use method patchValue
myForm.patchValue({'key':{'subKey':'newValue'}});
但如何在下面的示例中更改嵌套数组中的值,例如汽车的列表。如何将列表数组的第一项更改模型
更改为 Fiesta
? Plunker
But how to change values in nested arrays like list of cars in this example below. How to get first item of list array an change model
to Fiesta
? Plunker
myForm.patchValue({'list':0:{'model':'Fiesta'});
无效。
@Component({
moduleId: __moduleName,
selector: 'my-app',
template: `<div><pre>{{ myForm.value | json }}</pre></div>`
})
export class AppComponent {
public myForm: FormGroup;
constructor(@Inject(FormBuilder) private _fb: FormBuilder) {
this.myForm = this._fb.group({
name: 'Cars',
list: this._fb.array([
this.initCar(),
this.initCar(),
this.initCar()
]),
});
/** Change value Here **/
this.myForm.patchValue({name: 'Automobile'});
};
initCar() {
return this._fb.group({
automaker: 'Ford',
model: 'Fusion'
});
}
}
正确答案
#1
我做了些什么类似的不是很久以前只是添加。
I did something similar not that long ago just add.
const patchV = (<FormArray>this.myForm.controls['list']).at(0) as FormArray;
patchV.patchValue({automaker: 'CoolCar', model: 'Bucket'})
工作实例[plunker] http://embed.plnkr.co/VWicnA/
Working Example [plunker]http://embed.plnkr.co/VWicnA/
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /reply/detail/tanhcfijch
系列文章
更多
同类精品
更多
-
YouTube API 不能在 iOS (iPhone/iPad) 工作,但在桌面浏览器工作正常?
it1352 07-30 -
iPhone,一张图像叠加到另一张图像上以创建要保存的新图像?(水印)
it1352 07-17 -
保持在后台运行的 iPhone 应用程序完全可操作
it1352 07-25 -
使用 iPhone 进行移动设备管理
it1352 07-23 -
在android同时打开手电筒和前置摄像头
it1352 09-28 -
扫描 NFC 标签时是否可以启动应用程序?
it1352 08-02 -
检查邮件是否发送成功
it1352 07-25 -
Android微调工具-删除当前选择
it1352 06-20 -
希伯来语的空格句子标记化错误
it1352 06-22 -
Android App 和三星 Galaxy S4 不兼容
it1352 07-20