Backbone JS - 集合,视图和模型的组合

时间:2015-06-13 10:47:03

标签: backbone.js backbone-views backbone-collections backbone-model

我现在在三个不同的项目中进行了以下设置,所以我想也许这里值得一提。我不是唯一一个对此感到疑惑的人。

所以它来了:

  • 我有一个对象列表
  • 列表项具有特殊功能,如draggable或onClick-Events

我的问题:如何使用Backbone构建此方案?

我想我为列表对象创建了一个模型和一个视图。我使用一个集合来保持我的对象。

现在我想知道:我是否在模型构造函数中实例化对象视图并在集合构造函数中实例化模型?或者有更好的方法来实现我想要的目标吗?

1 个答案:

答案 0 :(得分:1)

既不;使用中介来实例化视图并将其注入模型/集合。

Marionette.js有a nice implementation for this sort of mediating object, called Controller - 我建议您查看。

此外,您不必明确地实例化集合模型 - 只需在集合的原型中声明其类型,例如:

var MyModel = Backbone.Model.extend({
    // do some shit
});

var MyCollection = Backbone.Collection.extend({
    model: MyModel // pass the type for the collection to instantiate
});

采取我们的调解员/控制器方法,这是如何做到的(使用Marionette.js):

var MyController = Marionette.Controller.extend({
    initialize: function () {
        this.myCollection = new MyCollection();
        this.myCollectionView = new MyCollectionView({
            collection: this.myCollection
        });
    }
});

这当然只是一个骨架代码,旨在大致展示MVC方法,但它是一个很好的起点。