【问题标题】:Web app architecture using Ember. Where should animation logic sit?使用 Ember 的 Web 应用架构。动画逻辑应该放在哪里?
【发布时间】:2012-09-07 15:25:06
【问题描述】:

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

我已经决定所有的动画逻辑都将在 Ember 混合类中单独放置在这个博客中:

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 属性等),因此会有很多视图和模型。我应该问这是否也很糟糕?

【问题讨论】:

    标签: javascript architecture web ember.js


    【解决方案1】:

    我不认为你所做的事情是一件坏事,请记住,在 javascript 应用程序中,我们已经看到 MVVM 的流行度有所上升,请注意最后两个字母 - 'ViewModel'。

    因此,我不认为这种关系不好。但肯定有人可以说不一样。

    【讨论】:

    • 谢谢你,太棒了。我应该每个元素都有一个视图来处理渲染模板逻辑和委托动画逻辑吗?或者也许它们可以分成两个视图?
    • 我认为,如果更多的开发人员参与到您目前正在编写的内容中,那么在保持代码清晰组织方面,您应该决定什么更有意义
    猜你喜欢
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2015-02-13
    • 2017-08-11
    • 2016-12-18
    相关资源
    最近更新 更多