2012-08-23 138 views
0

我一直在尝试创建自己的基础模型和集合以在我的应用程序中进行扩展。我的意思不是说叫:扩展Backbone.Collection和Backbone.Model来创建新的集合/模型类型

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

我想用

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

也是类似的控制器。在大多数OOP模型,有一个简单的方法在MooTools的做到这一点,例如:

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

这是真的我想模仿的模式。原因是我想在我的所有模型和集合中都可以使用某些属性和方法,而无需每次重新实现它。

我注意到有几个库(例如backbone-relational)管理这个,但代码似乎有点脏(可能只是因为模式是如此陌生),我不太确定我理解它。

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

回答

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一样使用它,它具有所有的特定属性和方法。

+0

这是我最初想的,但它不工作。我再次尝试,现在它正在工作。我一定在另外一个地方引入了另一种错误。非常感谢 :) – GTF