Angular 2 /Ionic 2的undefined属性导致模板不刷新



我刚刚完成试图解决以下问题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-card, some-other-component渲染一次,然后停止更新。它响应点击事件,但从不更新。

我的问题是:有没有办法强迫Angular/Ionic显示它未能渲染而只是失败?

我的解决办法是:<p>{{user?.Company?.Name}}</p>这对我来说是可怕的,我们现在必须检查每个对象的属性存在。我想知道是否有一些我只需要设置/配置,以改变这种行为。期望的结果要么是控制台错误,要么只是像Angular 1那样渲染。x。

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

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

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

最新更新