Angular 2使用模板引用变量ngForm作为输入绑定

时间:2016-06-15 09:29:16

标签: angular

我正在构建一个输入'有效'的组件。如果我将值绑定到父组件的成员,事情就会很好。但是,如果我将它绑定到像这样的模板引用

<step [valid]="name.valid">

      <input type="text" name="name"
             #name="ngForm"
             [(ngModel)]="name"
             required>

</step>

我得到了

  

检查后表情发生了变化。上一个值:'true'。   当前值:'false'

我部分理解。我得到组件初始化后发生ngForm有效检查,因此值已更改。 我没有得到的是为什么这是一个问题,为什么这可以通过调用enableProdMode()来解决,为什么enableProdMode()是一个坏主意。

我也试过了 使用.detach()和.reattach()的ChangeDetectorRef来临时禁用变化检测,但这并没有解决它,听起来也是个坏主意。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这是一个已知问题。改为使用

<form #f="ngForm">
  <step [valid]="f.controls['name'].valid">