Como os eventos de 'mudança' são tratados nos modelos de backbone?

Eu estou tentando construir um modelo que atualiza dinamicamente variáveis ​​de sessão em um projeto do Meteor. Eu sei que JSON simples não deve ser armazenado em modelos de backbone, então eu tenho um modelo especial configurado assim:

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
},

Com "Preço" e "Data" sendo armazenados em seus próprios modelos:

//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
    }
});

Como mostrado, quando os atributos do modelo Especial são alterados, ele deve chamar a exibição para o atributo que foi alterado e, em seguida, definir o Session var para o modelo. Se o meu DateModel ou PriceModel mudar, no entanto, não parece acionar um evento de mudança no modelo especial. Se cada "DateModel" e "PriceModel" tiverem seus própriosthis.on('change', ...) métodos que chamamSpecial.set(attribute, thisModel) métodos? Ou há uma maneira diferente de fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion