заполнение вложенных коллекций с помощью выборки родительской модели

У меня есть следующая модель с вложенной коллекцией

var Mdl = Backbone.Model.extend({
  initialize: function() {

    // collection
    this.col1 = new NestedCollection();

  },
  ...
});

Я хотел бы отправить данные как для модели, так и для моделей в коллекции одним запросом, который выглядит примерно так:

{
  att1: val,
  col1: [{obj1: val}, {...}]
}

Я не уверен в лучшем способ передать данные запроса во вложенную коллекцию (col1). Я не могу ...

var Mdl = Backbone.Model.extend({
  initialize: function() {
    // collection
    this.col1 = new NestedCollection(this.get('col1');
  },
  ...
});

... потому что во время инициализации вызывается функция синтаксического анализа модели, что означает, что атрибут col1 пуст, другое решение, о котором я подумал, - это прослушивание изменение в родительской модели, например ...

model.bind("change:tags", function() {
  model.col1.refresh(model.get('col1'));
});

, однако это решение кажется немного тяжелым и потенциально может нарушить любую настройку функций

this.col1.bind("add", function() {})

и

this.col1.bind("remove", function() {})

в коллекции.

Кто-нибудь имел представление о "официальный" способ сделать это?

Спасибо.

10
задан luxerama 9 June 2011 в 12:18
поделиться