首页 文章

Obj []与可观察<Obj []> Angular 2/4 [关闭]

提问于
浏览
-1

这可能是一个答案太明显的问题,但我没有找到一个好的答案 .

假设我有一个对象数组类型'Obj'( Obj[] Vs. Observable<Obj[]> ),用于使用* ngFor绑定数据 .

以下场景有何区别/优点:

  • 当Obj列表作为HTTP响应返回并经常更新时

  • 当Obj列表作为HTTP响应返回并且仅更新一次时

  • 当它是辅助阵列(未通过HTTP填充)但由另一个阵列更新时

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数组 .

  • contests数组直接从http响应更新

  • dayPlanCandidates数组取决于比赛 .

我的问题:如果我应该将两个数组保持为可观察量,或者我应该将竞赛[]作为一个可观察对象并将dayPlanCandidates设置为一个竞赛数组?

1 回答

  • 0

    Observable 是'simply'一个对象,它作为异步数据的包装,或"data that will come at a later time."这是 RxJS 库的一部分(或者通常是 RX ,代表:反应式扩展 . )这个第三方库被集成到Angular中并且是"common"允许你很好地操纵异步值的对象(一旦你掌握了它,虽然陡峭的学习曲线 . ) - 公平地说,我逃脱了 Build 一个整体角度项目而不用担心 Observables (和类型)

    最好使用 Observables 的异步管道,因为Angular被设计为非常好地使用这些对象(为您节省了大量的样板代码)

相关问题