2013-12-10 56 views
0

我最近開始玩Backbone.js。我想將自定義驗證機制應用於我的模型類,並決定使用mixin類。現在的問題是一個好主意,將混入附加到Backbone.Model類像下面,通過mixins擴展Backbone.Model

_.extend(Backbone.Model.prototype, MyApp.ValidationMixin) 

或者我可以創建一個基礎模型AppModel從所有應用模型中延伸,我會附上混入到基本模型。

var AppModel = Backbone.Model.extend({}); 
_.extend(AppModel.prototype, MyApp.ValidationMixin) 

如果我使用第一種方法,我會遇到任何問題嗎?

+0

由於您是Backbone的新手,我只想指出您應該使用validate方法:http://backbonejs.org/#Model-validate。它將適用於這兩種解決方案,但我建議第二種解決方案。 –

回答

3

一般來說,第一種方法對於這種特定情況是可以的(在骨幹模型中添加Validation Mixin),但您的驗證Mixin可能會被其他庫做相同的擦除操作(有時候很難「挑選」額外的Backbone庫的功能)。

第二種方法更安全,並且是通常推薦的方法,可以在各種Backbone的應用程序樣板中看到。

兩者在技術上都是一樣的,只要你住在你自己的小應用程序泡泡裏。

+0

最後我被你的回答說服了「被其他圖書館抹去了」。我不認爲你投下了這個問題。 – VJAI

+0

哈哈,很難讓你贏到這邊。我不好意思,我想我在你的編輯之間有幾次困惑,因爲我不確定整個事情的什麼部分(JS中的繼承/ mixin?_.extend vs extend()?從Backbone.Model擴展或擴展Backbone.Model ......)你真的很感興趣。 – Enders