2016-09-22 2 views
0

私はSencha ExtJSフレームワークのバックグラウンドを持つAngular2コースに従っています。Angular2で大きなデータを管理する

私の質問はかなり簡単です:AngularJSを使用すると、大きなデータ構造をどのように保存し、やり取りしますか?サービスが取得していたすべてのコースで、データは常に小さく、配列に格納されていました。

なぜExtJSについて言及しましたか? Store toというクラスを提供しているので、名前のように、データを格納し、それを照会し、フィルタリング、ソート、マッピングなどの可能性があります。

はのは、例を作ってみましょう:

私は世界の空港のリストを持っていると私は選択でそれを提供したいと考えています。もちろん、リスト全体を提供するselectに注入されたサービスをセットアップします。しかし、その後:

-Iは、ユーザーがデータを含む-The配列は、国などの名前またはID

後に他のプロパティを持つオブジェクトの配列です

を入力しに行くと、それをフィルタリングしますそれに続くアプローチはどれですか?

+0

こんにちは、あなたのアプリケーションの上にあるスマートコンポーネントにデータ(すなわち、空港のリスト)を格納できない原因は何ですか?これは私が今までに見た最も一般的なデザインです。 – pietro909

+0

問題が複雑なオブジェクトのリストのクエリメソッドに関連している場合は、最も有名なライブラリ(Lodashでは_map_、_filter_、_fold_、...)またはRxJSを使用して非同期で作業できます。 – pietro909

+0

これはまさに私が探していたものです。 Angularの新機能として、私は管理を理解するだけでした。組み込み関数はありません。外部ライブラリに委譲する必要があります。私が言っていたように、ExtJSにはすでに含まれているこのすべての管理が含まれています。スマートコンポーネントはどういう意味ですか? app.component?しかし、どうもありがとう! –

答えて

1

私のコメントによると、ここに私の答えです。我々はロジックとデータをホストスマートコンポーネント、および論理好ましくはステートレスない純粋な図であるダム成分を有し、角度2で

理想的には、APIからデータを取得し、データ全体を返すか、ストリームをRxJSで公開するかのいずれかでスマートコンポーネントに配信することができます。

RxJSを使用した例は次のようになります。

  • サービスAPIを呼び出すとSubscription
  • つの形式のデータ
  • サービスのデータを消費するスマートコンポーネント、とObservableを返しますスマートコンポーネント(コンテナとして機能する)によってプッシュダウンされるデータを表示する際のダムコンポーネントの数がより多くなることがあります。

この時点では、データ操作はサービス内またはスマートコンポーネント内に存在する可能性があります(変換する必要がある方法と方法によって異なります)。 データを操作するには、RxJSを使用することをお勧めします。これは、ストリームを連鎖させる方法とfilter, aggregate, map, ...の方法を使用します。これは非同期です。

複雑ではなくブロックする(要件によります)場合は、Lodashを使用することをお勧めします。これは、コレクションのチェーン、マップ、フィルター、集計のメソッドを提供します。

関連する問題