1

Ember を使用して Web アプリを作成しています。ドラッグ アンド ドロップ (および自動スライドなどの他のアニメーション) は、ユーザーがアプリを操作する方法の重要な部分です。

私は、すべてのアニメーション ロジックが、このブログに対して Ember mixin クラスに単独で配置されることを既に決定しています。

http://www.dynopia.com/index.php/en/blog/article/771/ember-js-animations-with-jquery-animate

ただし、ドラッグ可能な要素ごとに 2 つのビューが必要かどうかについて少し混乱しています。1 つは要素をレンダリングするため、もう 1 つはアニメーション ロジックを処理するためです。

さらに、アニメーションが完了したら、対応するモデルで要素の現在の css 属性を更新する必要があります。ビューとモデルの間の単純な双方向バインディングでこれを処理できます。

/** element view **/
App.elemOneView = Ember.View.create({
 name: 'element One',
 cssAttr: {},
 ...

});

/** element controller**/
App.elemController = Ember.ArrayController.create({
 content: [],
  ....

});

/** element model **/
App.elemOneModel = Ember.Model.create({
 name: 'element one',
 cssAttrBinding: 'App.elemOneView.cssAttr'
 ...
});

私の質問は、それらの間にコントローラーレイヤーがあるにもかかわらず、モデルがビューに直接バインドされていることに眉をひそめているということですか? ビューとモデルの両方を中間オブジェクトに同期させる必要がありますか?

注: 現在、ページに表示される各要素のビュー (アニメーション ロジック用) とモデル (特に css 属性を格納するため) を宣言する予定であるため、多くのビューとモデルが存在します。これも悪いのか?

4

1 に答える 1

0

あなたがしていることは悪いことではないと思います。JavaScript アプリケーションでは、MVVM の人気が高まっていることを思い出してください。最後の 2 文字「ViewModel」に注目してください。

そういう意味で、相性は悪くないと思います。しかし、確かにそうではないと言うことができます。

于 2012-09-07T15:29:15.850 に答える