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 に答える