У меня есть вид и модель, связанные с ним в позвоночнике. Просмотрите наблюдения для изменения модели и соответствующим образом измените ее область отображения. например:Как обрабатывать изменения нескольких базовых моделей в одном обработчике
var Part = Bacbone.Model.extends({
defaults:{
partId = null,
manufacturer: null,
manufactureDate: null,
type: null
}
});
var PartsCollection = Backbone.Collection.extends({
model:Part;
)};
var Car = Backbone.Model.extends({
defaults:{
carModel: null,
carName: null,
color: null,
partsCollection: null
},
//Overwite the parse method to fill partsCollection
parse: function(response){
// creating partsCollection from response and adding an attribute
// response.partsCollection = new PartsCollection();
retrun response;
}
});
У меня есть структура, аналогичная приведенной выше. В моей стратегии разработки я изменяю содержимое представления при изменении модели.
Так вот, например, если я заменяю производителя «A» на изготовителя «B» на 1000 частей из 5000 деталей. Это должно изменить мое мнение, и для этого я слушаю событие изменения модели на мой взгляд. Из-за модификации 1000 частей произойдет 1000 изменений событий.
Из-за изменения изготовителя я также могу изменить атрибут «manufacturerDate» модели детали, и если я изменю attor manufacturerDate, который, в свою очередь, вызовет еще 1000 событий.
Обработка этих событий на мой взгляд может быть не очень хорошая идея, это то, что я чувствую. Так может ли кто-нибудь предложить мне способ решить эту проблему?
Вы делаете это совершенно неправильно! Почему 1000 изменений в одно и то же время ?! Означает ли конечный пользователь все их в одном месте? Я написал очень тяжелый тест с todomvc (1000+ todos) и придумал идею, что angularjs намного быстрее, чем другие для этого случая. Я также начал проект для этого случая (Lilith.js, еще не готовая базовая вилка, которая быстрая, но вы можете получить от нее идеи!). Кстати, я могу порекомендовать 3 варианта: использовать response.js или другую фреймворк, использовать другой подход привязки или библиотеку на основе ваших потребностей, не делать 1000 изменений! –