2012-08-23 93 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