【问题标题】:([ngmodel]) object does not refresh data when it is changed in a method([ngmodel]) 对象在方法中更改时不会刷新数据
【发布时间】:2020-09-23 07:02:06
【问题描述】:

大家,

希望你能帮我解决我的问题。

我目前正在通过 JSON 生成一组输入。 如果我在web界面修改数据就没有问题了。

当任何输入的值出现问题时,我在组件中修改它,例如在函数中。

它不会检测到更改。我已经在这里搜索了信息,但我还没有找到解决方案。

我给你一个链接,你可以在其中查看代码和我遇到的问题。

Stackblitz Proyect Example

【问题讨论】:

    标签: angular typescript angular-material angular-ngmodel


    【解决方案1】:

    您需要在模板中使用适当的绑定:

    设置值[ngModel]="form[inputs.value.name] || inputs.value.default",允许使用默认值。

    更新我们需要监听输出的值(ngModelChange)="form[inputs.value.name] = $event"

    <input
      matInput
      type="number"
      id={{inputs.value.name}}
      [ngModel]="form[inputs.value.name] || inputs.value.default"
      (ngModelChange)="form[inputs.value.name] = $event"
      placeholder={{inputs.value.minimum}}
      min={{inputs.value.minimum}}
      max={{inputs.value.maximum}}
      step={{inputs.value.step}}
      matTooltip="{{inputs.value.title}}: {{inputs.value.description}}"
      matTooltipPosition="before"
      style="text-align: right;"
    />
    

    【讨论】:

    • 一个问题,只要输入没有变化,您的解决方案,表单对象,这个空的,没有默认值。即使用户没有对输入进行更改,如何让表单对象具有默认值?
    • 为此,您需要更新组件的类以在ngOnInit 中将默认值设置为form
    • 再次感谢,我做到了。 ngOnInit() { for (let variable in this.json.properties){ this.form[variable]=this.json.properties[variable].default; } } 并删除 || inputs.value.default stackblitz
    猜你喜欢
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多