打字稿/角度2 - 多级[(ngModel)]

时间:2017-12-19 17:56:05

标签: angular typescript

我的代码如下:

<ion-row>
  <ion-col class="alignCenter" col-6 col-sm-6 no-padding>
     <p>Pulse (bpm)</p>
  </ion-col>
  <ion-col col-6 col-sm-6 no-padding>
    <ion-item>
      <ion-input type="text" [(ngModel)]="form.content.vitals.pulse"></ion-input>
    </ion-item>
  </ion-col>
</ion-row>

当我向后端发出请求时,有时会出现&#34; vitals&#34;级别未定义,我得到一个例外。

使用* ngIf =&#34; form.content.vitals&#34;的解决方案,而不是将输入添加到DOM对于这种情况不是一个好的,因为如果我没有任何东西&#34; vitals&#34;,然后根本不会出现输入。

我也不想手动输入&#34; vitals&#34;价值为{},因为我还有更多其他级别,比如这个。

我知道我可以用这个:

<ion-item>
  <ion-input type="text" [ngModel]="form.content.vitals?.pulse" (ngModelChange)="form.content.vitals.pulse = $event"></ion-input>
</ion-item>

在Angular 1中它更容易,但我在想,还有其他可能解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

  

当我向后端发出请求时,有时会出现&#34; vitals&#34;级别未定义,我得到一个例外。

然后,当您从后端收到数据时,请检查它是否为undefined并加载一个默认对象,其中包含所有属性的有效值,例如''

如果您打算保存/发布这些数据,则无论如何都必须单独检查它们。

为此,我建议您查看Angular的FormBuilder,这样您就可以为每个表单元素附加预定义或自定义验证器。