这可能是一个答案太明显的问题,但我没有找到一个好的答案。
假设我有一个对象数组类型'Obj'(Obj[]
Vs. Observable<Obj[]>
),用于使用* ngFor绑定数据。
以下情况有什么区别/优点:
Angular推荐的方式是什么?为什么?
代码:
//declaration
private contests: Observable<Contest[]>;
private dayPlanCandidates: Observable<Contest[]>;
//populate
let response = this.contestService.search(this.query, page, size, sort);
this.contests = response.map(p => p.content);
//http call
return this.http.get(targetUrl, { params: params })
.share()
.map(res => res.json())
.map(pageObj => Page.build(pageObj, Contest.from));
<!-- binding-->
<div *ngFor="let contest of contests | async"> </div>
<div *ngFor="let contest of dayPlanCandidate"> </div>
正如您在代码中看到的,有2个Observable数组。
竞赛数组直接从http响应
dayPlanCandidates数组取决于比赛。
我的问题: 如果我应该将两个数组保持为可观察的或 如果我将竞赛[]作为一个可观察对象并将dayPlanCandidates设置为一个竞赛数组?
答案 0 :(得分:0)
Observable
是“简单地”一个对象,它表现为异步数据的包装,或者“以后会出现的数据”。这是RxJS
库(或RX
一般的一部分,代表:反应式扩展。)这个第三方库集成到Angular中,是一个“通用”对象,允许您操作异步价值相当不错(一旦你掌握了它,陡峭的学习曲线虽然。) - 公平地说,我离开了建立一个整体角度项目而不用担心Observables
(和类型)
最好将异步管道与Observables
一起使用,因为Angular旨在非常好地使用这些对象(为您节省大量的样板代码)