0

我有一个 Angular 2 应用程序,其中我有一个包含树子组件的主组件。

在我的一个子组件(我们称之为 user_input)中,我有一个带有用户输入的表单。在我的主组件中,我有一个按钮,需要检查我的子组件表单是否有效,从而启用它。

我试图通过访问它。(来自master.view.html)

<user_input #usrInput></user_input><button                           

[disabled]="!usrInput.formname.form.valid(click)="next()">
Next</button>

但是由于我的 user_input 表单在我验证我的主人时没有初始化,这会引发“类型未知”的异常。

有没有聪明的方法来解决这个问题?我有两个共享的服务,但我不想为此使用它。

提前致谢!

[更新]

我在 ngSwitch 中有我的子元素。

  <div *ngSwitchCase="0">
    <create-user-info></create-user-info>
  </div>

  <div *ngSwitchCase="1">
    <create-user-services></create-user-services>
  </div>

  <div class="col-lg-12" *ngSwitchCase="2">
    <create-user-conditions></create-user-conditions>
  </div>

</div>

一旦我把它移出来,错误就解决了。因为我需要它在 ngSwitch 中,所以我使用了下面提供的解决方案

4

1 回答 1

0

您可以利用所谓的安全导航运算符。这样,如果usrInput不再为空,则仅对以下成员进行评估。

<user_input #usrInput></user_input>
<button [disabled]="!usrInput?.formname.form.valid"
        (click)="next()">Next</button>
于 2016-07-20T09:00:05.673 回答