我有一个带有嵌套窗体数组的反应式窗体。效果很好,直到现在都没有问题。
contractForm = new FormGroup({
ContractNumber:new FormControl(''),
...
Items: this.fb.array([])
});稍后将填充items数组。
当我试图改变其中一个的值时,我的问题就来了。以前从来没有真正遇到过问题。但是,此函数:
removeSerial(rowIndex, snIndex){
const itemsArray = this.contractForm.get('Items') as FormArray;
const serialArray = itemsArray.at(rowIndex).get('SerialNumbers') as FormArray;
serialArray.at(snIndex).get('STATUS').setValue('Inactive');
console.log(serialArray.at(snIndex).get('STATUS').value);
console.log(this.contractForm.value);
}第一个console.log显示预期的"Inactive“值。但是,当我打印表单的值时,该值不会改变。这里我漏掉了什么?如果有关系,则将组件设置为"changeDetection: ChangeDetectionStrategy.OnPush“
发布于 2020-07-25 01:06:58
解决方案是添加serialArray.updateValueAndValidity();感谢Chellappan将我带到那里。
https://stackoverflow.com/questions/63077358
复制相似问题