0

我有以下 json 字符串,我正在尝试从每个名称/值对创建一个模型。我在每个模型中都有一个名为“name”的属性

"[{"name":"A01"},{"name":"A02"},{"name":"A03"},{"name":"A04"},{"name":"A05"},{"name":"A06"},{"name":"A07"},{"name":"A08"},{"name":"A09"},{"name":"A10"},{"name":"A11"},{"name":"A12"},{"name":"A13"},{"name":"A14"},{"name":"A15"},{"name":"A16"},{"name":"B01"},{"name":"B02"},{"name":"B03"},{"name":"B04"},{"name":"B05"},{"name":"B06"},{"name":"B07"},{"name":"B08"},{"name":"B09"},{"name":"B10"},{"name":"B11"},{"name":"B12"},{"name":"B13"},{"name":"B14"},{"name":"B15"},{"name":"B16"},{"name":"C01"},{"name":"C02"},{"name":"C03"},{"name":"C04"},{"name":"C05"},{"name":"C06"},{"name":"C07"},{"name":"C08"},{"name":"C09"},{"name":"C10"},{"name":"C11"},{"name":"C12"},{"name":"C13"},{"name":"C14"},{"name":"C15"},{"name":"C16"},{"name":"D01"},{"name":"D02"},{"name":"D03"},{"name":"D04"},{"name":"D05"},{"name":"D06"},{"name":"D07"},{"name":"D08"},{"name":"D09"},{"name":"D10"},{"name":"D11"},{"name":"D12"},{"name":"D13"},{"name":"D14"},{"name":"D15"},{"name":"D16"}]"

这是我的代码,其中 Teams 是团队的集合。我为每个角色获得了一个新模型。

var myteams = new Teams( _.map(data, function(p) { return p.name } ));
var app = app || {};
var Teams = Backbone.Collection.extend({
    model: app.Team,
    initialize: function (models,options) { }
});

var app = app || {};

app.Team = Backbone.Model.extend({

    defaults: {
        name: ''
    },
    initialize: function(){
        console.log('This is ' +typeof(this));
    }
});
4

1 回答 1

2

首先,它看起来data可能是一个原始 JSON 字符串,而不是一个实际的对象数组。你JSON.parse已经正确转换了吗?

其次,您将一个字符串数组传递给Teams集合构造函数。不要那样做。您必须传递一个对象数组,所以忘记您的_.map调用,只需确保data是一个对象数组并将其直接传递给您的Teams构造函数。

第三,仅供参考,一旦您正确填充了 Teams 集合,myteams.pluck("name")如果您想要每个团队的名称列表,请使用。(仅供参考)。

于 2013-03-17T21:27:35.700 回答