Backbone 1.1.2
Underscore 1.7.0
jQuery 1.11.1
У меня есть одна коллекция, содержащая сообщения. Мои сообщения могут быть разных типов (и конечные точки в API разные для каждого типа, но у меня есть конечная точка, которая позволяет мне сделать один запрос и получить все сообщения)
Когда Collection.fetch() мне нужно определить, какую модель использовать при заполнении коллекции на основе существующих свойств.
Я пробовал, как было предложено здесь: Коллекция Backbone.js нескольких подклассов модели, а также документацию по магистрали 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);
}
},
значение attr - это всего лишь один большой массив объектов, поэтому без обхода это решение не имеет для меня смысла, и очевидно, почему оно не работает.
Правильно ли я обрабатываю это, есть ли другой способ сделать это?
---ОБНОВИТЬ----
Я также пытался сделать это в функции разбора коллекции, и моя коллекция просто пуста.
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));
}
if (attr.modelType === 'mailItem') { return MailItemModel; }
- person Dominic   schedule 30.12.2014