我的 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 操作以及设置一些状态并在控制器中执行一个动作。
我不确定执行此操作的推荐方式是什么。任何人都可以开导吗?