2016-09-22 42 views
0

我遵循一個具有Sencha ExtJS框架背景的Angular2課程。在Angular2中管理大數據

我的問題很簡單:使用AngularJS您如何存儲大數據結構並與其進行交互?在服務檢索數據的所有過程中,數據總是很小,並且存儲在一個數組中。

爲什麼我提到ExtJS?因爲它提供名爲Store的類,如名稱所示,存儲數據並對其進行查詢,並具有過濾,排序,映射等功能。

讓我們做出了榜樣:

我在世界機場的名單,我想它提供一個選擇。當然,我會設置注入到提供整個列表的選擇的服務。但後來:

-I要爲用戶上鍵入

包含數據組成的數組去過濾它與其他屬性的對象,如國家或ID名稱後的數組

遵循哪種方法?

+0

嗨,什麼是阻止您將數據(即機場列表)存儲在智能組件上的應用程序之上?這是迄今爲止我看到的最常見的設計。 – pietro909

+0

如果問題與複雜對象列表的查詢方法有關,則可以使用最着名的庫之一(Lodash offers _map_,_filter_,_fold_,...)或RxJS異步工作。 – pietro909

+0

這正是我正在尋找的。作爲Angular的新手,我需要理解管理。沒有什麼內置的,你必須委託外部庫。正如我所說的,ExtJS已經包含了所有這些管理。智能組件是什麼意思? app.component?不過非常感謝你! –

回答

1

根據我的意見,這是我的答案。

在角2,我們有智能組件,它承載的邏輯和數據,並且啞部件其是純的觀點,沒有邏輯和優選無狀態的。

理想情況下,您可以從API中檢索數據並將其交付給智能組件,可以返回整個數據或使用RxJS公開流。

使用RxJS一個例子是:

  • 服務調用的API,並返回與所述數據
  • 智能組件消耗該服務的數據,在一個Subscription
  • 一種形式的Observable或更愚蠢的組件來顯示由智能組件(充當容器)推下的數據

此時,您的數據操作可能駐留在服務中或智能組件中(這取決於您需要轉換以及如何轉換)。 爲了操縱數據,我建議你使用RxJS,它提供了連鎖流和filter, aggregate, map, ...方法的可能性。它是異步的。

如果你可以去做一些不那麼複雜但阻塞的事情(這取決於你的要求),我建議你使用Lodash,它爲集合提供鏈接,映射,過濾和聚合數據的方法。