Reputation: 78
I'm using backbone.js and I want to fetch data for my Collection from server:
var Account = Backbone.Model.extend();
var AccountList = Backbone.Collection.extend({
model: Account,
url: '/pfp/accounts/service',
parse: function(response){
return response.Data;
}
});
var accountList = new AccountList;
accountList.fetch();
console.log(accountList.toJSON());
Server response:
{"Data":
[{"accountid":"101752","account_name":"hijklmnopq","userid":"1","comment":"mnopqrstu","creation_date":"6 Jan 2008","account_type":"2","acc_type_name":"Дебетовая карта","currency":"144","letter_code":"","start_balance":"90.000.000","start_balance_raw":90000000.000,"to_total":true},
{"accountid":"144924","account_name":"emabcefghijklmnopqr","userid":"1","comment":"lmno","creation_date":"19 Jan 2008","account_type":"4","acc_type_name":"Банковский счёт","currency":"113","letter_code":"Le","start_balance":"360.000.000,00","start_balance_raw":360000000.000,"to_total":true},
...
accountList.toJSON() return empty array ([ ]). Please help me what is wrong with the code.
Upvotes: 2
Views: 7397
Reputation: 186
So, as WiredPrairie said, you need to change those lines:
accountList.fetch();
console.log(accountList.toJSON());
to:
accountList.fetch({
success: function(collection){
// This code block will be triggered only after receiving the data.
console.log(collection.toJSON());
}
});
// JS will likely reach this line before receiving the data.
Upvotes: 4