backbone.js переопределить contstructor - PullRequest
0 голосов
/ 27 марта 2012

Я создаю HTML-страницу, которая использует backbone.js

Как я могу переопределить конструктор базовой модели?

Позвольте мне объяснить на примере: У меня есть 2 модели, скажем, M1 и M2. В конструктор М2 хочу поставить и 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 Ответ

3 голосов
/ 28 марта 2012

Хорошо, нашел решение.

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);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...