私の EmberJS アプリには、ビュー/DOM の操作とコントローラーでの状態の設定、それに続くモデルの更新を必要とする (ボタンによってトリガーされる) いくつかのアクションがあります。私がこれを行う方法は、私のプログラミングの美学に訴えるものではありません。仕事は完了しますが、見栄えがよくありません:(
ここに私が物事を行う方法の要点があります:
<button {{action 'whatever' target='view'}}></button>
App.MyView = Ember.View.extend({
actions:{
whatever:function(){
var ctrl = this.get('controller');
ctrl.set('property',value); // arbitrary example of setting a controller property through it's view
ctrl.controllerMethod(); // invoking a controller method through the view
**// do some DOM manipulation**
}
}
});
当然のことながら、ビューで実行しているコントローラー関連のステップをコントローラー メソッドでラップし、ビューを介してそのメソッドを呼び出すことができますが、IMO も同じように見苦しくなります。ビューは、実際に私が行ったようにコントローラーメソッドを呼び出すべきではありません。残念ながら、この特定のアクションには、DOM 操作と、コントローラーでの状態の設定とアクションの実行が必要です。
これを実行するための推奨される方法が何であるかはわかりません。誰でも啓発できますか?