Когда вы создаете модель Backbone и присоединяете событие изменения, она будет ее слушать. И событие, если вы измените их в одно и то же время (в том же заданном вызове), он запустит событие изменения количество изменений, которое у вас есть в вашей модели.Базовая модель огня только одно изменение
Итак, представьте, что у меня есть представление, которое подобно сетке с фильтрами, и оно должно обновляться каждый раз, когда я меняю фильтр.
Моя модель по умолчанию выглядит следующим образом:
defaults: {
filters: {
from: '2016-01-01',
to: today.format(format),
limit: 25,
page: 1,
cycle: 'all'
}
},
У меня есть перехватчик для модели в представлении:
this.listenTo(this.model, 'change:filters', this.onShow);
И каждый раз, когда я изменить фильтр я делаю:
this.model.set('filters', {
from: '2016-07-01',
to: '2016-07-31',
limit: 25,
page: 1,
cycle: 'currentMonth'
});
Как вы видите, я изменил 3 свойства этой модели. Случилось так, что он сработает событие изменения 3 раза. Что я хочу достичь, так это то, что он меняется только один раз, даже если у меня есть 3 изменения на модели.
Является ли это выполнимым?
Заранее спасибо
То, что вы описываете, запускает событие изменения только один раз. Http://jsfiddle.net/nikoshr/u254vzmb/ Обратите внимание, что вы должны обернуть ваши 'defaults' функцией, чтобы избежать совместного использования объекта' filters' http: // backbonejs.org/#Model-defaults (малые строки) – nikoshr
nikoshr прямо на всех счетах. Какую бы проблему вы ни столкнулись, это не тот, который вы описываете в своем вопросе. Либо это, либо что-то еще происходит, что вы не показываете. – Louis