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);   
}