我是Angular2 +的新手,需要实时创建一个页面。当我加载我的组件时,我使用Observable调用一个服务,并将结果保存在我在模型中的ngFor中使用的变量中。加载后,我需要每分钟刷新一次数据,并需要优化更改后的数据。
有谁知道怎么做?
答案 0 :(得分:1)
你可以从可观察间隔开始,它会每分钟进行一次轮询。
服务
poll{
return Observable
.interval(1000)
.flatMap(() => {
//ur Observable from HTTP call
return Observable
});
}
组件: - 在分配最新值之前尝试比较值,这将避免不必要的分配
this.service.poll().subscribe(
data => {
// if data same don't update
if((JSON.stringify(this.models) === JSON.stringify(data) === false) ){
this.models = data;
}
}
);
Html代码
< li *ngFor="let model of models ;trackBy: trackByFn " >
{{model}}
< li >
trackBY将停止不必要的渲染 更多信息 https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html
答案 1 :(得分:0)
我认为你需要将socket.io与RxJs Observables结合起来才能完成这项任务
检查this