BackBone模型 - >收藏 - >型号 - >更新 - 不会触发根模型的更改

时间:2013-08-19 22:57:02

标签: javascript backbone.js backbone-relational

我有这个

ServerInfoModel = Backbone.RelationalModel.extend({     
    relations: [
        {
            type: Backbone.HasMany,
            key: 'data',
            relatedModel: 'Data',
            collectionType: 'DataCollection',
            reverseRelation: {
                key: 'id',
                includeInJSON: 'id'
            }
        }
    ]
})
Data = Backbone.RelationalModel.extend({
});

DataCollection = Backbone.Collection.extend({
    model: Data
});

现在我有一个与ServerInfoModel关联的视图。 如果我从该集合中的模型数据更改值,则不会在ServerInfoModel上触发“更改”,仅在DataCollection上触发;

如何从DataCollection将“change”事件传递给ServerInfoModel?

1 个答案:

答案 0 :(得分:1)

我发现了如何做到这一点,只是听'数据'变化并触发'改变'进一步

ServerInfoModel = Backbone.BaseRelationalModel.extend({
url: function () {
    return "/examples/serverInfo.json"
},
setup: function () {
    var self= this;
    this.get('data').on('change', function () {
        self.trigger("change");
    });
},

relations: [
    {
        type: Backbone.HasMany,
        key: 'data',
        relatedModel: 'Data',
        collectionType: 'DataCollection',
        reverseRelation: {
            key: 'id',
            includeInJSON: 'id'
        }
    }
]
});

Data = Backbone.BaseRelationalModel.extend({ 
});

DataCollection = Backbone.Collection.extend({
  model: Data
});