2009-05-09 3 views
1

最近まで、私はフレックスのフレームワークとしてcairngormを使用してきました。しかし、この最新プロジェクトでは、私はMateに切り替えました。私はモデルにデータを残すのに慣れていたので、私はまだ少し混乱させています。私は、同じデータセット(コレクション)に依存するいくつかのコンポーネントを持っています。 コンポーネントでは、作成完了ハンドラがイベントマップの1つによって捕捉された 'GiveMeMyDataEvent'を送信します。私のコマンドクラスのcairngormでは、モデルからデータを取得する必要があるかどうかを判断し、モデルからデータを返すか、dbを呼び出したかどうかを判断するためにモデルをすばやく調べました。 私はこれをMateでどのようにしますか?または、これについてもっと良い方法があります。私はすでにサーバーから受信したデータを利用しようとしていますが、同時にデータをロードしたかどうかはわかりません。同じデータを使用するコンポーネントがインスタンス化されている場合は、答えは「はい」、そうでない場合は「いいえ」です。 ヘルプ/ヒントは非常に高く評価されています。メイトフレームワーク - リモートコールを行う前にデータを確認する

答えて

5

メイトのほとんどのものは間接的です。データを管理するマネージャがあり、マネージャとビューの間にインジェクタ(バインディング)が設定されています。インジェクターはあなたの意見があなたのマネージャーと同期していることを確認します。そうすれば、ビューには常に最新のデータが保持されます。ビューは、のようにイベントをディスパッチした結果、のように更新されることはありませんが、という間接的な結果として、となります。

新しいデータをロードする場合は、イベントマップによってキャッチされたイベントをディスパッチします。イベントマップは、データをロードしてイベントマップに戻すサービスを呼び出します。イベントマップは、適切なマネージャー。

マネージャが更新されると、インジェクタはビューが更新されていることを確認します。

インジェクタを使用すると、ビューに最新のデータが常にあることが保証されます。ビューにデータがある場合は、データがロードされます。定期的に更新する必要がない場合は、は古いですし、サービス呼び出しをトリガーするイベントをディスパッチし、アップデートをトリガーして、インジェクターが新しいデータをビューに再度プッシュしトリガするようにトリガーします。

あなたの疑問に対する答えは、インジェクタを適切に使用する必要があるということです。これがあまりに高水準の回答である場合は、Mate forumsでより多くの助けを得ることができます。

0

私は現時点で取り組んでいるアプリケーションと同様の状況に遭遇し、の2つのイベントについて考え始めると簡単に実装されていることがわかりました。

最初のイベントはDataEvent.REFRESH_MY_DATAのようなものです。このイベントは、一部のDataManagerによって処理されます。これは無視されます(データがすでにクライアントに存在し、最新の状態にあるため)。または、マネージャはDataEvent.FETCH_MY_DATAのようなイベントを送出できます。

イベントは、イベントマップでサービスコールをトリガーします。サービスコールは、マネージャの値を更新します。このアップデートはビューにプロパティ注入されました。幸せな日です:)

関連する問題