【问题标题】:input field not updating dynamically in angular 11 reactive form输入字段未以 Angular 11 反应形式动态更新
【发布时间】:2021-09-03 05:42:24
【问题描述】:

我正在处理一个 Angular 项目,并希望动态更新我的反应式表单字段,并且数据来自名为 getNextCode() 的 API。我在

中调用API服务
ngOnInit(): void {

this.NextCodeService.getNextCode().subscribe(
      (data: any) => {

        this.nextCode = data;
        this.f.code.setValue(this.nextCode);
        this.f.code.disable();

      }, (err: any) => this.handleErr(err)
    );
}

我正在使用form 控件来更新我的输入字段。当我打开表单时,字段被禁用,其值是从getNextCode() API 设置的。但未设置字段输入值,disable 调用不起作用。

【问题讨论】:

  • 添加 html 代码和表单声明以更好地理解问题。请阅读this

标签: angular api angular-material angular-ui updating


【解决方案1】:

您尝试更改的字段未更新的原因是它无法在响应式表单中找到您尝试更新的字段,因为您尝试直接访问该字段。

从此更改您的代码:

this.f.code.setValue(this.nextCode);
this.f.code.disable();

收件人:

this.frmGroup.get('code').setValue(this.nextCode);
this.frmGroup.get('code').disable();

【讨论】:

  • 对我不起作用 ..f 实际上是一个从控件返回的函数,代码是需要更新值的特定输入字段的表单控件名称
  • 你能把代码也贴在你的函数 f 中吗?
  • 不,我不能,因为 api 必须在 ngOnInit() 中调用:首先在生命周期钩子中调用这个函数
  • 你的表单组的变量名是什么?
  • frmGroup 是我的组名,我使用此函数获取此表单组的控制权 get f() { return this.frmGroup.controls; }
猜你喜欢
  • 1970-01-01
  • 2021-11-19
  • 2020-09-27
  • 1970-01-01
  • 2022-11-14
  • 2018-10-10
  • 2017-08-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多