在我的示例中,在Backbone App中连接不同实体的最佳方法是什么:
我在页面上有一些项目(例如商品),我需要对它们进行一些操作。所以我有一个Balance.Model
来限制某些动作(例如,我只能标记带有一些标志的N个项目,可能是颜色)。因为我有Items.Collection
和View.Actions
(用于渲染菜单链接)。此外,我有SelectedItems.Collection
来保留Item.Models,通过复选框检查操作。
所以请处理一些我需要做的事情:
Action.onClick → Balance.checkLimits → SelectedItems.each(Item) → Item.processAction
我需要传达Actions,Balance和SelectedItems集合来处理带有已检查项目的操作。 什么是最好的方法呢?触发器/ listenTo?将一些模型保留在另一个模型中?
答案 0 :(得分:0)
您所描述的内容听起来像是控制器在视图和模型之间缓解的责任。 AFAIK Backbone没有很好的标准方法来做到这一点。我建议看看Backbone Marionette http://marionettejs.com/。它在路由/视图/应用程序结构方面做了很多工作,vanilla主干已经不再支持灵活性。查看http://coding.smashingmagazine.com/2013/02/11/introduction-backbone-marionette/以获得简要介绍。
答案 1 :(得分:0)
然后我会创建一个包含更具体逻辑的类,然后使用这种技术混合先前创建的关注:http://coffeescriptcookbook.com/chapters/classes_and_objects/mixins
然后,如果像onClick那样在UI上发生了某些事情,我会在我的视图类中拦截它,然后让我担心处理它......
这会将UI特定逻辑与特定于域的逻辑分开+创建可重用的问题。