0

所以我的问题是这样的。

使用主干将某些内容保存在 MYSQL 数据库中。

当我调用 this.model.save() 时,我遇到了一个非常奇怪的问题。

该模型会将 JSON 响应保存为对象,并且不会更新新值。

所以我在开发工具中的属性看起来像这样。

属性:对象

0: Object

ID: "4"

Name: "TEST"

Title: "MEOW"

Stuff: "1"

When: "2013-02-14 22:17:14"

0 不应该在那里。我确实确认了 json 对象是有效的,所以我知道这不是问题所在。

4

1 回答 1

1

看起来您的 JSON 响应实际上是一个具有单个元素的数组,而不是一个对象。

该属性0是在 Backbone 调用时创建的model.set(response),它反过来将响应对象的所有键复制到属性哈希中。如果将数组传递给set,则会发生这种情况。

您应该修复您的服务器以使用原始对象 ( {...}) 而不是数组 ( [{...}]) 进行响应。如果您无法更改服务器行为,则可以覆盖Model.parse以解开客户端上的响应:

var Model = Backbone.Model.extend({
  parse: function(response) {
    return _.isArray(response) ? response[0] : response;
  }
});
于 2013-02-20T22:56:00.813 回答