1

私は別の開発者によって書かれたいくつかのFlexコードをリファクタリングしており、ActionScriptをMXMLから分離したいので、PresentationModelアプローチを実装しています。私が見つけた問題の1つは、元のActionScriptコードがMXMLから要素を追加/削除することです。

ハンドラー関数がモデルをチェックし、値が正しい場合は、ビューから要素を作成または削除します。プレゼンテーションモデルをビューの広告要素に配置し、それでも私が目指しているこの緩い結合を維持するための最良の方法は何ですか。

プレゼンテーションモデルがディスパッチする単純なイベントと、追加する要素の詳細を渡すためのビューリストを使用することを考えていました。別の解決策はありますか?

ありがとう

スティーブン

4

2 に答える 2

1

プレゼンテーション モデルを使用している場合は、何を行う必要があるかについて何らかのデータがあると思います。あらゆる種類のアイテムが動的に追加/削除されるときは、操作を簡単にするためにデータ駆動型にするようにしています。別のアイテムを追加する場合は、選択した dataProvider (List、ComboBox、DataGroup など) に別のデータ モデルを追加します。

このアプローチを行うことで、プレゼンターからビューへのロジックを抽象化しています。イベントは、プレゼンターが何かを達成したことをビューが知る方法としてのみ使用する必要があります。データはこの方法で受信できます (そうすることをお勧めします)。または、プレゼンター内のデータを dataProvider にバインドするだけです。どちらも良いですが、バインディングの方がクリーンでシンプルだと思います。

于 2011-04-11T15:55:25.757 に答える
0

グラフィカルな操作 (境界線の描画、スタイルの設定、ドラッグ アンド ドロップの管理、アニメーションなど) を行うコードのすべての部分は、プレゼンテーション モデルではなく、ビューに含める必要があります。

PM でプロパティが変更された後に実行する必要があるこの種のグラフィカルには、Cairngorm 3 Observer ライブラリを使用します。基本的に、プレゼンテーション モデルのいくつかの変更をリッスンし、View で関数を実行できるようにします。

<cg:ObserveValue 
    source="{ model.firstName }" value="{ Name.SARA }"  
    handler="runEffectFunction"/>

ドキュメントを見る

于 2011-04-11T16:45:53.753 に答える