2012-03-27 35 views
0

我正在建立一個使用backbone.js的html頁面backbone.js覆蓋contstructor

我該如何重寫骨幹模型的構造函數?

讓我用一個例子來解釋一下: 我有一個2個模型,比方說M1和M2。 在M2的構造,我想把和M1

m1=new M1({somedata:""}); 
m2=new M2({m1Ref: m1) 

如果我這樣做,M2將包含對M1的參考。 但是我需要的是M2有M1數據複製(somedata屬性值應該被複制到M2),所以我試圖覆蓋的構造,並更改接收到的數據有

var M2=Backbone.Model.extend({ 
    constructor: function(data){ 
    data=_.extend(data, data.timmer); 
    data.timmer=undefined; 
    Backbone.Model.prototype.constructor.call(this, data); 
    } 
} 

但這不是好好工作。

應該如何正確重寫構造函數?

謝謝

回答

3

好的,找到了解決方案。

var M2=Backbone.Model.extend({ 
    constructor: function(data, opts){ 

    data=_.extend(data, data.m1Ref); 
    data.m1Ref=undefined; 

    //new: we don't want to copy the id from m1 to m2 
    data.id=undefined; 

    Backbone.Model.prototype.constructor.call(this, data); 
    } 
}