表单内的viewChild不会从pristine触发它

时间:2017-06-19 21:53:01

标签: javascript html forms angular angular2-forms

情况如下:

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'的值时输入没有任何反应。如何从子组件中渲染表单?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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