Есть ли чистый способ изменения модели коллекции Backbone во время выполнения? Другими словами, у меня есть коллекция под названием BaseCollection
, где по умолчанию ее модель называется BaseModel
. Модель выступает в качестве базового класса для других моделей. Скажем AModel
, BModel
и т.д.Можно ли изменить модель Backbone.Collection во время выполнения
Теперь во время выполнения сбора, основываясь на конкретных Params, необходимо понять, если это необходимо вызвать метод parse
(с определенной перенастройки) в BaseModel
или один из parse
методов, используемых в модели, которые простираются от BaseModel
.
Обычно это может привести к простому расширению коллекции каждый раз, когда я ее создаю. Так, например, по умолчанию определено следующее.
var BaseCollection = Backbone.Collection.extend({
model : BaseModel,
// other stuff here
});
Теперь, если я хочу, чтобы иметь коллекцию, где AModel
должен быть model
BaseCollection.extend({ model: AModel });
Здесь сложный материал. Что делать, если коллекция не содержит модель того же типа. Другими словами, что, если BaseCollection
содержит AModel
s, BModel
s и т. Д.? Обратите внимание, что мне нужно вызвать метод parse
для каждой модели, так как они немного отличаются друг от друга.
Спасибо. +1. Я полностью пропустил его из документации. Если «условие» исходит из данных, возвращающихся из back-end, могу ли я продолжать применять это? Другими словами, где можно найти «условие»? Из 'attrs',' options' или где-то еще? –
Условие @flexaddicted может быть получено из attrs, опции, состояния коллекции, флага или любого другого «синхронного» кода, который у вас есть – ekeren
Так, например, в attrs я найду атрибуты, возвращаемые из запроса, принадлежащего определенной модели. Правда? –