我正在嘗試將JSON(從php的json_encode)加載到Backbone JS集合中。我已經簡化了問題:Backbone:從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。 – 2012-01-16 06:39:14
該文檔至少在一個示例中顯示直接傳遞json到初始化:http://documentcloud.github.com/backbone/#Collection-toJSON(即使此演示的目的是如何導出json) – pws5068 2012-01-16 08:35:56
請注意,他們沒有提及它們傳遞給集合構造函數的數組已經被解析。該文檔可能在那裏稍作澄清,但需要記住的是JSON通常以字符串格式在服務器和客戶端之間傳遞,並且需要在發送之前在接收或字符串化之後進行解析。 – kinakuta 2012-01-16 08:54:01