Backbone 1.1.2
Подчеркивания 1.7.0
JQuery 1.11.1Различных типов моделей в одной коллекции Backbone
У меня есть один сборник, который содержит сообщение. Мои сообщения могут быть разных типов (и конечные точки в api различны для каждого типа, но у меня есть конечная точка, которая позволяет мне делать один запрос и получать все сообщения)
Когда Collection.fetch() Мне нужно определить, какую модель использовать при заполнении коллекции на основе существующих свойств.
Я попытался, как предложено здесь: A Backbone.js Collection of multiple Model subclasses , а также основой документации backbonejs.org
Мой код выглядит следующим образом
model: function (attr, options) {
if(attr.hasOwnProperty('prop')){
return new PropModel(attr,options);
}
else if(attr.hasOwnProperty('another_prop')){
new AnotherPropModel(attr,options);
}
},
СТОИМОСТИ атр только один большой массив объектов, так что без прохождения почему-то это решение не имеет для меня никакого смысла и его очевидного, почему это не работает.
Я правильно справляюсь с этим, есть ли другой способ сделать это?
--- UPDATE ----
Я также попытался сделать это в функции Разбор коллекции и моя коллекция просто пустой
parse: function (resp, options) {
_.each(resp, _.bind(function (r) {
console.log(this);
if(r.hasOwnProperty('prop')){
this.add(new PropModel(r));
}else{
this.add(new AnotherPropModel(r));
}
},this));
}
Есть ли ключ почтительность в период между моделями? Или это просто URL? – anAgent
@anAgent Атрибуты для каждого из них разные, поэтому я хотел бы отображать модель на модель при рендеринге моего шаблона. Я думаю, что я мог бы сделать эту же логику в шаблоне, но я предпочитаю оставить логику из шаблона, чтобы я мог легко переключаться с шаблонами шаблонов, если это необходимо. – Beyerz
Также URL-адрес важен для меня, так как атрибуты разные. Несмотря на то, что сообщения могут быть сгруппированы, они также независимы в других областях моей системы. – Beyerz