使用Ember的Web应用程序架构。动画逻辑应该放在哪里?

时间:2012-09-07 15:25:06

标签: javascript architecture web ember.js

我正在使用Ember构建一个Web应用程序。拖放(以及其他动画,例如自动幻灯片)是用户与应用程序交互方式的重要部分。

我已经决定所有的动画逻辑都将在Ember mixin类中独立存在于此博客中:

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

但是,我很困惑每个draggable元素是否应该有两个Views,一个用于渲染元素,一个用于处理动画逻辑?

此外,在动画完成后,元素的当前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属性等),因此会有很多视图和模型。我应该问这是否也不好?

1 个答案:

答案 0 :(得分:0)

我不认为你所做的事情是件坏事,请记住,在javascript应用程序中我们看到了MVVM越来越受欢迎,请注意最后两个字母 - “ViewModel”。

因此,我不认为这种关系是不好的。但当然可以说不然。