【发布时间】:2017-01-31 02:58:13
【问题描述】:
我正在学习具有 Sencha ExtJS 框架背景的 Angular2 课程。
我的问题很简单:使用 AngularJS,你如何存储大数据结构并与之交互?在整个过程中,当服务检索数据时,数据总是很小并且存储在数组中。
我为什么提到 ExtJS?因为它提供了名为 Store 的类,顾名思义,存储数据并查询数据,具有过滤、排序、映射等功能。
我们举个例子:
我有世界上的机场列表,我想选择提供它。当然,我将设置注入到提供整个列表的选择的服务。但后来:
-我想在用户继续输入时对其进行过滤
-包含数据的数组是一个对象数组,名称后面有其他属性,如国家或id
要遵循哪种方法?
【问题讨论】:
-
嗨,是什么阻止您将数据(即机场列表)存储在应用程序顶部的智能组件中?这是迄今为止我看到的最常见的设计。
-
如果问题与复杂对象列表的查询方法有关,您可以使用最著名的库之一(Lodash 提供 map、filter i>, fold, ...) 或 RxJS 异步工作。
-
这正是我想要的。作为 Angular 的新手,我只需要了解管理。没有内置任何内容,您必须委托给外部库。正如我所说,ExtJS 已经包含所有这些管理。智能组件是什么意思?应用程序组件?不过非常感谢!
-
不客气! App.component 在几乎所有情况下都可以被认为是一个智能组件:它将托管业务逻辑并在需要时保留状态(如您的机场列表)。我在下面的回答中详细说明了。