扩展Backbone.Collection和Backbone.Model以创建新的Collection / Model类型

时间:2012-08-23 12:23:18

标签: oop backbone.js mootools underscore.js extend

我一直在尝试创建自己的基础模型和集合,以便在我的应用中进行扩展。我的意思是,而不是打电话:

var MyModel = Backbone.Collection.extend({
    ...
});

我想用

var MyModel = App.Model.extend({
    ...
});

同样对于控制器。在大多数OOP模型中,有一种简单的方法可以做到这一点,例如在Mootools中:

var MyModel = new Class({
    Extend: App.Model,
    ...
});

这是我想模仿的模式。这样做的原因是我希望在我的所有模型和集合中都有某些属性和方法,而不必每次都重新实现它。

我注意到有一些库(例如backbone-relational)可以管理它,但是代码看起来有点脏(可能只是因为模式太陌生了),而且我不太确定我理解它

所以我的问题是:如何以正常的OOP方式扩展Backbone的核心类? (是的,我知道Javascript不使用类继承,但原型继承& c ..

1 个答案:

答案 0 :(得分:0)

App.Model = Backbone.Model.extend({
  //do whatever you want to be present in all of your models
});

然后,App可用的任何地方

var MyModel = App.Model.extend({
  // Do whatever you want to do for this particular type of model
});

所以你只需要创建一个新的基础Model,它具有你想要的所有特定属性和方法,可以在Backbone上扩展,然后像Backbone一样使用它。