嗨,这是Backbone.js的第一个问题。我花了几个小时试图找出如何从这个JSON运行:
{
"key1": "value1",
"key2": "value2",
}
IMO我应该在解析方法中将其更改为:
{
{title: "key1", description: "value1"},
{title: "key2", description: "value2"},
}
因此,将数据作为带有把手的表格输出会更容易:
<tr>
<td>{{title}}</td>
<td>{{description}}</td>
</tr>
这是我在模型中的解析方法
parse : function (response) {
_.each(response, function (value, key, list) {
this.set({ "title": key, "description": value });
}, this);
return response;
}
答案 0 :(得分:4)
parse : function (response) {
var res = [];
_.each(response, function (value, key, list) {
res.push({ "title": key, "description": value });
});
return {"result": res};
}
您可以像这样访问您的模型数据。
model.get("result");
注意:强>
这是错误的语法。
{
{title: "key1", description: "value1"},
{title: "key2", description: "value2"},
}
你应该将它放在一个数组中。
[
{title: "key1", description: "value1"},
{title: "key2", description: "value2"},
]
答案 1 :(得分:1)
如果您期望响应中的对象列表,则应该使用集合而不是模型。
集合解析方法可以看起来像
parse:function(resp){
return _.map(_.keys(resp),function(key){
return {
title:key,
description:resp[key]
}
})
}