我正在使用 Ember 构建一个 Web 应用程序。拖放(以及其他动画,例如自动滑动)是用户如何与应用交互的重要部分。
我已经决定所有动画逻辑都将在 Ember mixin 类中单独放置,请参阅此博客:
http://www.dynopia.com/index.php/en/blog/article/771/ember-js-animations-with-jquery-animate
但是,我有点困惑每个可拖动元素是否应该有两个视图,一个用于渲染元素,一个用于处理动画逻辑?
此外,动画完成后,元素的当前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 属性等),因此会有很多视图和模型。我应该问这是否也很糟糕?