I'm attempting to load JSON (from php's json_encode) into a Backbone JS collection. I've simplified the problem to:
var myJSON = '[{ "id":"1","name":"some name","description":"hmmm"}]';
var myCollection = new MyCollection(myJSON, { view: this });
And:
MyObject = Backbone.Model.extend({
id: null,
name: null,
description: null
});
MyCollection = Backbone.Collection.extend({
model: MyObject,
initialize: function (models,options) { }
});
Error:
Uncaught TypeError: Cannot use 'in' operator to search for 'id' in
Similar Issue: Backbone: fetch collection from server
My JSON certainly appears to be in the right format, am I missing something obvious? I have attempted using simply id: "1" as opposed to "id" with the same result.
Your JSON is still in string format. Pass it to JSON.parse before assigning it:
var myJSON = JSON.parse('[{"id":1,"name":"some name","description":"hmmm"}]');
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With