backbone.js - Data not being fetched from json file -
i trying fetch data static json file data not getting displayed @ all. possible reason it. below code:
var collection = backbone.collection.extend({ url: "names_of_people.json", initialize: function() { this.fetch(); } }); collections = new collection(); console.log("the length "+collections.length); (i=1;i<collections.length;i++) { console.log("done "+ collections.at(i).get("name")); }
the problem code:
console.log("the length "+collections.length); (i=1;i<collections.length;i++) { console.log("done "+ collections.at(i).get("name")); }
ends being executed before this.fetch()
has completed. you'll need either put code in this.fetch
's success
callback, this:
var collection = backbone.collection.extend({ url: '/data.json', initialize: function() { this.fetch({ success: function() { console.log(collections, 'the length ' + collections.length); (var = 0; < collections.length; i++) { console.log('done ' + collections.at(i).get('name')); } } }); } }); var collections = new collection();
or listening collection's sync
event, occurs when this.fetch
has completed successfully. pattern more commonly used in backbone applications.
var collection = backbone.collection.extend({ url: '/data.json', initialize: function() { this.listento(this, 'sync', this.syncexample); this.fetch(); }, syncexample: function() { console.log(collections, 'the length ' + collections.length); (var = 0; < collections.length; i++) { console.log('done ' + collections.at(i).get('name')); } } }); var collections = new collection();
you can read more backbone's event system , listento
function here.
Comments
Post a Comment