在Angular2 / Ionic2中调用http后查看不更新

时间:2016-04-26 10:55:17

标签: angular ionic2

我有一个简单的Ionic2页面需要从服务器获取数据并将其显示在模板中。

当我运行应用程序时,我在控制台中看到显示console.log(res.Data);出现的所有数据。

不幸的是视图没有更新。然而,当我按下按钮时,一切都像魅力一样。

我还必须从this.update()方法调用ngOnInit,但没有成功。有什么想法我在这里做错了吗?

代码

constructor(private timeline: TimelineService) {
    this.update();
}

update() {

  this.timeline.getTimeline(1).subscribe(res => {
    console.log(res.Data);
    this.timelineData = res.Data;
  });

}

模板

<pre>
    {{ timelineData?.length }}
</pre>

<button (click)="update()">Update</button>

<div *ngFor="#timelineItem of timelineData; #i = index">
    <timeline-item [data]="timelineItem"></timeline-item>
</div>

2 个答案:

答案 0 :(得分:0)

我可以在您的模板中看到问题。由于您的数据是异步加载的,因此在尝试显示其length属性时应该会遇到问题。

您可以在此级别尝试Elvis运算符:

<pre>
  {{ timelineData?.length }}
</pre>

答案 1 :(得分:0)

我有类似的工作,在onPageLoaded()下调用服务就像一个魅力。你试过这个吗?

dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    // Request Finish
});