2

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

但是,当我创建一个新模型时,它的集合包含以前的模型值。正如预期的那样,所有其他属性都是空白的。

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

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

由于某种原因,该集合的所有新模型似乎都在使用同一个实例。

知道为什么会这样吗?

提前感谢=)

4

1 回答 1

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/

于 2013-11-07T11:57:28.293 回答