Backbone JS - Model返回两个结果而不是一个结果

时间:2014-08-25 09:32:23

标签: javascript backbone.js model

我一直在摆弄骨干,我试图通过获取某个ID来检索单个结果。

型号:

var Recipe = Backbone.Model.extend({
    urlRoot: 'recipes',
  initialize: function() {
    this.fetch();
    console.log("A new recipe has been loaded.");
  },
});

var recipe = new Recipe({id: id});

recipe.toJSON() // Returns:

返回:

Object {0: Object, id: "1"}

这将返回包含我所有数据的对象和包含我在new Recipe({id: id})中设置的ID的id字段。

为什么这样做?我认为使用特定ID获取的模型将检索单个结果。或者我做错了吗?

祝你好运, 杰克

2 个答案:

答案 0 :(得分:1)

在分配给模型

之前解析数据
var Recipe = Backbone.Model.extend({
    urlRoot: 'recipes',

   parse : function(response){
   return response[0];
   },
  initialize: function() {
    this.fetch();
    console.log("A new recipe has been loaded.");
  },
});

答案 1 :(得分:0)

您的服务器返回一个数组,它应该返回给定模型的单个JSON对象。换句话说,问题出在你的服务器上:Backbone没有正确处理返回的值,因为它期望一个JSON对象而不是你的服务器返回的数组。 Backbone通常使用集合来处理JSON对象的数组。