Backbone.js添加到Collection

时间:2012-07-18 10:33:00

标签: javascript json backbone.js

在Backbone中,我有一个集合,其中填充了一些JSON数据,如下所示。

[
{
    "test1": {
        "fistName": "test",
        "lastName": "example"
    },
    "test2": {
        "fistName": "test",
        "lastName": "example"
    }
},
{
    "test1": {
        "fistName": "test",
        "fistName": "example"
    },
    "test2": {
        "fistName": "test",
        "fistName": "example"
    }
},

目前我正在尝试将新模型添加到包含上述数据的集合中。

这是模特。

Test = Backbone.Model.extend({
defaults : {
        test1: {
            firstName: null,
            lastName: null
        },
        test2: {
            firstName: null,
            lastName: null
        }
    },

});

以下是我正在尝试的内容

var test = new Test({test1: {firstName: $("#test1 option:selected").val(), score: $("#test1lastName").val()}}, {test2: {firstName: $("#test2 option:selected").val(), score: $("#test2lastName").val()}});

myCollection.add(test);

但是这样做只会填充test1数据而不会填充test2数据。将test1和test2数据添加到模型中的正确方法是什么,然后可以将其添加到集合中。

由于

更新

为了澄清,测试1和2不是单独的对象,它们彼此相关并且需要在同一模型中

1 个答案:

答案 0 :(得分:3)

编辑,取决于您的模型的定义方式,如果您将其格式设置如下,则可以稍微调试一下。

var test = new TFS.Test({
    test1: {
        firstName: $("#test1 option:selected").val(),,
        lastName: '', // code for last name? 
        score: $("#test1lastName").val()
    },
    test2: {
        firstName: $("#test2 option:selected").val(),
        lastName: '', 
        score: $("#test2lastName").val()
    }
});

myCollection.add(test);

如果您更好地了解整个行动/过程,我可以为您提供更多帮助 - 即触发创建这些模型的原因是什么? jQuery可能有问题,而你的文档还没准备好?