骨干模型 - 在新模型创建时,集合属性不为空

时间:2013-11-07 11:50:02

标签: backbone.js

我有一个带有主干集合作为属性的模型。当我创建一个新模型并将其与其集合一起保存到数据库时,一切正常。

但是,当我创建新模型时,其集合包含以前的模型值。所有其他属性均为预期的空白。

我已经定义了我的模型默认值:

defaults: {
        InsertionOrderNumber: null,
        ClientID: null,
        CampaignName: null,
        FromDate: null,
        ToDate: null,
        TotalBudget: null,
        ManagementFee: null,
        AgencyCommission: null,
        SourceDocuments: new Uploads() //this is the collection
    }

出于某种原因,似乎该集合的相同实例正用于该类型的所有新模型。

知道为什么会这样吗?

提前致谢=)

1 个答案:

答案 0 :(得分:1)

原样,new Uploads()在您定义模型时进行评估,而不是在创建新实例时进行评估。使用函数在默认值中创建新集合:

var M = Backbone.Model.extend({
    defaults: function() {
        return {
            InsertionOrderNumber: null,
            ClientID: null,
            CampaignName: null,
            FromDate: null,
            ToDate: null,
            TotalBudget: null,
            ManagementFee: null,
            AgencyCommission: null,
            SourceDocuments: new Uploads()
        };
    }
});

演示http://jsfiddle.net/nikoshr/gzTgt/