【问题标题】:Backbone: the best way to communicate entities骨干网:沟通实体的最佳方式
【发布时间】:2013-12-21 11:32:04
【问题描述】:

对于我的示例,在 Backbone App 中连接不同实体的最佳方式是什么:

我在页面上有一些物品(例如商店物品),我需要对它们进行一些操作。所以我有一个Balance.Model 来限制某些操作(例如,我只能用一些标志标记 N 个项目,也许是颜色)。当然,我有Items.CollectionView.Actions(用于呈现菜单链接)。我也有SelectedItems.Collection 来保留Item.Models,通过复选框来检查动作。

所以处理一些我需要做的动作:

Action.onClick → Balance.checkLimits → SelectedItems.each(Item) → Item.processAction 

我需要传达 Actions、Balance 和 SelectedItems 集合以处理带有选中项目的操作。 最好的方法是什么?触发器/监听?将一些模型保存在另一个模型中?

【问题讨论】:

    标签: javascript backbone.js backbone-events


    【解决方案1】:

    您所描述的内容听起来像是在视图和模型之间进行缓解的控制器的责任。 AFAIK Backbone 没有很好的标准方法来做到这一点。我建议看看 Backbone Marionette http://marionettejs.com/。它在路由/视图/应用程序结构方面为您做了很多工作,vanilla 主干已经节省了灵活性以支持灵活性。查看http://coding.smashingmagazine.com/2013/02/11/introduction-backbone-marionette/ 的简要介绍。

    【讨论】:

      【解决方案2】:

      嗯...看来您正在做一些非常特定于领域的事情。为此,我会将最通用的东西提取到关注点中,并使该关注点在没有视图的情况下工作......

      然后我将创建一个包含更具体逻辑的类,然后使用此技术混合先前创建的关注点:http://coffeescriptcookbook.com/chapters/classes_and_objects/mixins

      然后,如果 UI 上发生类似 onClick 之类的事情,我会在我的视图类中拦截它,然后请求我的关注来处理它...

      这会将特定于 UI 的逻辑与特定于域的逻辑分开 + 创建一个可重用的关注点。

      【讨论】:

        猜你喜欢
        • 2018-05-12
        • 1970-01-01
        • 2011-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 2011-06-04
        相关资源
        最近更新 更多