【问题标题】:viewChild inside a form does not trigger it from pristine表单内的 viewChild 不会从原始状态触发它
【发布时间】:2017-11-22 06:14:14
【问题描述】:

情况如下:

parent.component.html

<form #someForm >
  <input type="text" name="title" [(ngModel)]="parentVar" />
  <child-component />
  <input type="submit" [disabled]="someForm.form.pristine" />
</form>

child.component.html

  <div>
    <input type="number" name="foo" [(ngModel)]="childVar" />
  </div>

当我改变'title'输入的值时,提交按钮被启用,但是当改变'foo'输入的值时没有任何反应。如何使子组件中的表单变脏?

【问题讨论】:

标签: javascript html forms angular angular2-forms


【解决方案1】:

默认情况下,任何嵌套组件不是 Angular 为跟踪状态而创建的 ngForm 数据结构的一部分。您需要将表单(通过#someForm)传递给每个子组件。

这里有一个例子:angular2 - validating FormControlName in child component of parent FormGroup

【讨论】:

    【解决方案2】:

    您可以简单地创建一个在子组件中的表单发生更改时发出的事件。 在你的子组件中使用 EventEmitter!

    【讨论】:

      猜你喜欢
      • 2019-12-24
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 1970-01-01
      相关资源
      最近更新 更多