JSON(PHPのjson_encodeから)をBackbone JSコレクションに読み込もうとしています。私はに、問題を単純化してきました:バックボーン:JSONからコレクションを作成
var myJSON = '[{ "id":"1","name":"some name","description":"hmmm"}]';
var myCollection = new MyCollection(myJSON, { view: this });
そして:
MyObject = Backbone.Model.extend({
id: null,
name: null,
description: null
});
MyCollection = Backbone.Collection.extend({
model: MyObject,
initialize: function (models,options) { }
});
エラー:
Uncaught TypeError: Cannot use 'in' operator to search for 'id' in
同様の問題:Backbone: fetch collection from server
私のJSONは確かに右にあるように見えますフォーマット、私は何かが明らかに欠けている?私は単純にid: "1"と同じ結果を持つ "id"を使用しようとしました。
ええ、jqueryの$ .getJSONメソッドのようなものを使ってデータを取得すると、自動的にJSON.parseが呼び出されます。 –
ドキュメントでは、jsonを少なくとも1つの例の初期化に直接渡しています:http://documentcloud.github.com/backbone/#Collection-toJSON(このデモの目的はjsonをエクスポートする方法です) – pws5068
コレクションコンストラクタに渡す配列がすでに解析されているとは言いません。 JSONは通常、サーバーとクライアントの間で文字列形式で渡されるため、送信前に解析したり、送信前に文字列を解析する必要があります。 – kinakuta