Angular2 无法绑定到 child 数组

Angular2 Cannot bind to child array

我有一个 JSON object 如下所示:

{
  "sessions": [
    {
      "title": Session Title,
      "room": "Ballroom A"
    },
    {
      "title": Session Title #2,
      "room": "Ballroom B"
    }
  ],
  "speakers": [
    {
      "name": John Doe,
      "twitter": "jdoe"
    },
    {
      "name": John Smith,
      "twitter": "jsmith"
    }
  ]
}

我正在尝试绑定到 object 的会话 child。完整的 object 在一个名为 conferenceData 的变量中,我用来显示标题的代码是:

<div *ngFor="#session of conferenceData.sessions">{{session.title}}</div>

当我执行此操作时,出现错误:TypeError: 无法读取 ProductListComponent@65:17 中 [conferenceData.sessions 中未定义的 属性 'sessions'

如果我将 child 分配给一个变量:

this.sessionData = this.conferenceData.sessions;

然后改为绑定到 sessionData 变量,它按预期工作。这是使用 TypeScript 和 Angular 2。我想这可能是 TypeScript 的类型问题,但我认为这时候都是 JavaScript。任何帮助,将不胜感激。

谢谢!

这可能是因为 this.conferenceData 尚未分配,当 Angular 第一次呈现您的视图时。

您可以使用 elvis 运算符轻松解决此问题:

<div *ngFor="#session of conferenceData?.sessions">{{session.title}}</div>

问题时间获取json数据,组件没有数据时angular 呈现视图。 解决方案 使用 'elvis' (?) 运算符来确保数据准备就绪: - <code><div *ngFor="#session of conferenceData?.sessions"> {{session.title}} </div> 第二个解决方案隐藏 ngFor直到conferenceData 是准备就绪 <div *ngIf="conferenceData"> <div *ngFor="#session of conferenceData.sessions"> {{session.title}} </div> </div>