backbone.js覆盖构造函数

时间:2012-03-27 07:37:07

标签: javascript html constructor backbone.js

我正在构建一个使用backbone.js

的html页面

如何覆盖骨干模型的构造函数?

让我用一个例子来解释一下: 我有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);
  }
}

但这不能正常工作。

如何正确覆盖构造函数?

由于

1 个答案:

答案 0 :(得分: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);
  }
}