Angular 2 / Ionic 2 undefined属性导致模板无法刷​​新

时间:2016-11-17 16:19:06

标签: angular ionic2

我刚刚尝试解决以下问题4小时。

<ion-card *ngIf="user">
      <ion-item>
        <h2>{{user.FirstName}}!</h2>
        <p>{{user.Company.Name}}</p>
      </ion-item>
 </ion-card>
 <some-other-component></some-other-component>


user = {
    FirstName: 'Nick'
};

请注意,user.Company未设置。我的整个组件都停止了工作。不只是ion-cardsome-other-component呈现一次,然后停止更新。它响应了点击事件,但从不更新。

我的问题是:有没有办法强制Angular / Ionic显示它无法呈现而不是失败?

我的解决方法是:<p>{{user?.Company?.Name}}</p>我很害怕我们现在必须检查每个物体是否存在物业。我想知道是否需要设置/配置以改变其行为方式。期望的结果是控制台错误,或者像Angular 1.x那样渲染。

2 个答案:

答案 0 :(得分:2)

不,没有设置强制渲染运行时错误。你必须用'?'检查作业或绑定到检查内部分配的方法。

答案 1 :(得分:1)

在这种情况下,只需要一个elvis操作符(?)。由于您在*ngIf="user"元素中包含ion-card,因此您只需要检查Company属性是否为空,如下所示:

<p>{{user.Company?.Name}}</p>