0

嗨,这是我使用 Backbone.js 的第一个问题。我花了几个小时试图弄清楚如何从这个 JSON 中排序:

{
  "key1": "value1",
  "key2": "value2",
}

IMO 我应该在 parse 方法中将其更改为:

{
  {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;
}
4

2 回答 2

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"},
 ]
于 2013-10-17T13:51:45.067 回答
1

如果您期望响应中的对象列表,则应该使用集合而不是模型。

集合解析方法看起来像

 parse:function(resp){
     return _.map(_.keys(resp),function(key){
               return {
                   title:key,
                   description:resp[key]
                 }
           })
 }
于 2013-10-17T16:16:03.927 回答