在Angular2中管理大数据

时间:2016-09-22 13:35:30

标签: angularjs angular store

我正在学习一个具有Sencha ExtJS框架背景的Angular2课程。

我的问题很简单:使用AngularJS,您如何存储大数据结构并与之交互?在服务检索数据的所有过程中,数据总是很小并存储在数组中。

为什么我提到ExtJS?因为它提供名为Store to的类,如名称所示,存储数据并对其进行查询,可以进行过滤,排序,映射等。

我们举个例子:

我有世界上的机场列表,我想在选择中提供它。当然,我将设置注入提供整个列表的选择的服务。但那时:

- 我希望在用户继续输入

时对其进行过滤

- 包含数据的数组是一个对象数组,其名称后面包含其他属性,例如country或id

要采用哪种方法?

1 个答案:

答案 0 :(得分:2)

根据我的评论,这是我的答案。

在Angular 2中,我们有智能组件,它们托管逻辑和数据,哑组件是纯视图,没有逻辑,最好是无状态。

理想情况下,您可以从API检索数据并将其传递给智能组件,或者返回整个数据,或者使用RxJS公开流。

使用RxJS的示例是:

  • 一项服务,该服务调用API并返回带有数据的Observable
  • Subscription
  • 的形式使用服务数据的智能组件
  • 显示由智能组件(充当容器)推送的数据的一个或多个哑组件

此时,您的数据操作可以驻留在服务中或智能组件中(这取决于您需要转换的内容和方式)。 为了操纵数据,我建议你使用RxJS来提供链流和filter, aggregate, map, ...方法的可能性。它是异步的。

如果您可以选择不那么复杂但阻塞的东西(这取决于您的要求),我建议您使用Lodash,这会为集合链接,映射,过滤和汇总数据带来方法