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

Backbone JS - Model returns two results instead of one

本文关键字:一个 两个 JS-Model 返回 Backbone 结果      更新时间:2023-09-26

我一直在摆弄主干,我试图通过使用某个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获取的模型将检索单个结果。还是我做错了?

谨致问候,Jake

在分配给模型之前解析数据

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.");
  },
});

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