初值角度后补丁值不起作用

时间:2020-03-06 12:52:49

标签: angular angular-reactive-forms

单击编辑图标时,我试图填充表单字段。第一次按预期运行,但是单击其他编辑图标后,它没有更新。另外,如果我按下了“取消”按钮,然后再次单击任何“编辑”按钮,则可以正常工作。但这仅是第一次。

Stackblitz demo

我正在将patchValue内的ngAfterViewInit称呼。

  ngAfterViewInit(): void {
     setTimeout(() => {
       this.editDataToForm();  
     }, );
  }

每当我单击任何一个编辑图标时,它都应该更新表单字段。

1 个答案:

答案 0 :(得分:1)

问题在于,ngAfterViewInit生命周期挂钩在组件的生命周期中(在初始化视图之后)仅进行一次处理,并且除非完全关闭表单,否则不会破坏该组件。

要在更改表单数据时随时更新表单,您还需要挂接到ngOnChanges生命周期挂钩。

  ngOnChanges(changes: SimpleChanges) {
    console.log('change detected: ', changes)
    setTimeout(() => {
      this.editDataToForm();  
    }, );
  }

派生的StackBlitz:https://stackblitz.com/edit/angular-t7jams