单击编辑图标时,我试图填充表单字段。第一次按预期运行,但是单击其他编辑图标后,它没有更新。另外,如果我按下了“取消”按钮,然后再次单击任何“编辑”按钮,则可以正常工作。但这仅是第一次。
我正在将patchValue
内的ngAfterViewInit
称呼。
ngAfterViewInit(): void {
setTimeout(() => {
this.editDataToForm();
}, );
}
每当我单击任何一个编辑图标时,它都应该更新表单字段。
答案 0 :(得分:1)
问题在于,ngAfterViewInit
生命周期挂钩在组件的生命周期中(在初始化视图之后)仅进行一次处理,并且除非完全关闭表单,否则不会破坏该组件。
要在更改表单数据时随时更新表单,您还需要挂接到ngOnChanges
生命周期挂钩。
ngOnChanges(changes: SimpleChanges) {
console.log('change detected: ', changes)
setTimeout(() => {
this.editDataToForm();
}, );
}
派生的StackBlitz:https://stackblitz.com/edit/angular-t7jams