Angular 角度反应形式-在patchValue期间添加控件-安全吗?
假设我有一个表格组Angular 角度反应形式-在patchValue期间添加控件-安全吗?,angular,angular-reactive-forms,Angular,Angular Reactive Forms,假设我有一个表格组 group = this.formBuilder.group({ optionTrueFalse: [null] }) 然后我有一个valueChange订阅,它根据optionRueflse添加或删除控件: group.controls.optionTrueFalse.valueChanges.subscribe(value => { if (!!value) { group.addControl('explain', new for
group = this.formBuilder.group({
optionTrueFalse: [null]
})
然后我有一个valueChange订阅,它根据optionRueflse
添加或删除控件:
group.controls.optionTrueFalse.valueChanges.subscribe(value => {
if (!!value) {
group.addControl('explain', new formControl(''));
}
else {
group.removeControl('explain');
}
}
现在,我修补以下值:
group.patchValue({
optionTrueFalse: true,
explain: 'Just Because'
});
现在在Angular版本7.2.6中,它运行良好。问题是:这是可靠和安全的吗
医生说:
patchValue()
修补FormGroup的值。它接受控件名为键的对象,并且尽最大努力将值与组中的正确控件相匹配
不知道“尽力而为”是什么意思
看这张照片,我看到:
理论上,如果Object.keys
给出与我相同的顺序(在MDN上有点模糊),那么它应该可以工作。我只想知道其他人有什么要说的,以及将来会怎样
patchValue(value: {[key: string]: any}, options: {onlySelf?: boolean, emitEvent?: boolean} = {}):void {
Object.keys(value).forEach(name => {
if (this.controls[name]) {
this.controls[name].patchValue(value[name], {onlySelf: true, emitEvent: options.emitEvent});
}
});
this.updateValueAndValidity(options);
}