Backbone 集合仅包含 1 个对象对象,如何使每个嵌套对象成为一个模型?
Backbone collection consists of only 1 object of objects, how can I make each nested object a model?
我的数据由一个具有嵌套对象的对象组成,每个键都是 id,我想解析集合 response.payload
但是当我这样做时,集合返回为包含嵌套对象的 1 个对象。谁能建议我如何使每个嵌套对象成为模型?
JS
var data = {
"payload": {
"020": {
"sessions": ["SES1", "SES2", "SES3", "SES4"],
"account": [],
"tag": []
},
"650": {
"sessions": ["SES11", "SES12", "SES13"],
"account": ["ACCT1", "ACC2", "ACC3"],
"tag": []
},
"880": {
"sessions": ["SES900", "SES901"],
"account": ["abc", "DEF"],
"tag": ["TAG5", "TAG53"]
}
}
};
var SearchCollection = Backbone.Collection.extend({
parse: function(response) {
console.log(response.payload);
return response.payload;
}
});
var searchCollection = new SearchCollection(data, {parse: true});
console.log(searchCollection.toJSON());
我是否需要在解析中循环响应并使用密钥 ID 创建模型,或者创建一个模型并在那里进行一些解析?
JS Fiddle http://jsfiddle.net/t6w0bcu6/22/
我会"loop the response in parse and create model with a key id"。这是一种方法。
var SearchCollection = Backbone.Collection.extend({
parse: function(response) {
var models = [];
_.each(response.payload,(value, key)=>{
value.id = key;
models.push(new Backbone.Model(value))
})
return models;
}
});
我的数据由一个具有嵌套对象的对象组成,每个键都是 id,我想解析集合 response.payload
但是当我这样做时,集合返回为包含嵌套对象的 1 个对象。谁能建议我如何使每个嵌套对象成为模型?
JS
var data = {
"payload": {
"020": {
"sessions": ["SES1", "SES2", "SES3", "SES4"],
"account": [],
"tag": []
},
"650": {
"sessions": ["SES11", "SES12", "SES13"],
"account": ["ACCT1", "ACC2", "ACC3"],
"tag": []
},
"880": {
"sessions": ["SES900", "SES901"],
"account": ["abc", "DEF"],
"tag": ["TAG5", "TAG53"]
}
}
};
var SearchCollection = Backbone.Collection.extend({
parse: function(response) {
console.log(response.payload);
return response.payload;
}
});
var searchCollection = new SearchCollection(data, {parse: true});
console.log(searchCollection.toJSON());
我是否需要在解析中循环响应并使用密钥 ID 创建模型,或者创建一个模型并在那里进行一些解析?
JS Fiddle http://jsfiddle.net/t6w0bcu6/22/
我会"loop the response in parse and create model with a key id"。这是一种方法。
var SearchCollection = Backbone.Collection.extend({
parse: function(response) {
var models = [];
_.each(response.payload,(value, key)=>{
value.id = key;
models.push(new Backbone.Model(value))
})
return models;
}
});