2012-03-27 2 views
0

나는 어떻게 백본 모델의 생성자를 오버라이드 (override) 할 수 backbone.jsbackbone.js 재정의 contstructor

를 사용하는 HTML 페이지를 짓고 있어요?

예를 들어 설명해 드리겠습니다. 저는 M1과 M2라고하는 두 가지 모델이 있습니다. I이 m2는 M1에 대한 참조를 포함 할 경우 M2 생성자 , 난 넣을 및 M1

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

. 하지만 내가 필요로하는 M1 데이터 (somedata 속성 값이 m2에 복사합니다) 복사 가지고 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); 
    } 
}