Как обрабатываются события «изменения» в магистральных моделях?
я пытаюсь построить модель, которая динамически обновляет переменные сеанса в проекте Meteor. Я знаю, что обычный JSON не должен храниться в магистральных моделях, поэтому у меня есть специальная модель, настроенная так:
initialize : function () {
// Log the changed properties
this.on('change', function (model, options) {
for ( var i in options.changes)
this.display(i);
Session.set('NewSpecial', model);
});
},
//Attributes
defaults: {
"Product" : null,
"ShortDescription" : null,
"Category" : "food",
"Price" : new PriceModel,
"Date" : new DateModel,
"Uses" : 0,
"Tags" : [],
"Contributor" : null
},
С "Цена" а также "Дата" хранятся в собственных моделях:
//Price model for use within Special
var PriceModel = Backbone.Model.extend({
defaults : {
"Regular" : null,
"Special" : null,
"PercentOff" : null
}
});
//Date model for use within Special
var DateModel = Backbone.Model.extend({
defaults : {
"StartTime" : null,
"EndTime" : null,
"HumanTimeRange" : null
}
});
Как показано, когда атрибуты специальной модели изменяются, она должна вызвать display для атрибута, который изменился, а затем установить Session var в модель. Однако если мои DateModel или PriceModel изменятся, это неПоявляется, чтобы вызвать событие изменения в Специальной модели. Должен каждыйDateModel» а также "PriceModel» есть своиthis.on('change', ...)
методы, которые вызываютSpecial.set(attribute, thisModel)
методы? Или есть другой способ пойти по этому поводу?