Reputation: 4742
var tablerows = '';
var dataSet = [];
if (response.hasOwnProperty('records') && response.metadata.record_count > 0) {
_.each(response.records, function (record) {
var sku_data = get_api_data(urls.sku.list + "/" + record.skuid, api.access_token);
if (sku_data != undefined) {
sku_data.done(function (sku) {
dataSet.push(sku.records[0].name);
console.log(dataSet);
})
}
})
$('#demo').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>');
$('#example').dataTable({
"data": dataSet,
"columns": [
{ "title": "Product" }
],
"aoColumns": [
null
]
});
How do i dynamically add all the dataSet values to the Datatable.
Please help right now i am getting a blank array.
Upvotes: 0
Views: 1253
Reputation: 7077
It is not about jQuery DataTable, you need to use promise to solve your problem
var tablerows = '';
var dataSet = [];
var dataSetPromise = [];
if (response.hasOwnProperty('records') && response.metadata.record_count > 0) {
_.each(response.records, function (record) {
var sku_data = get_api_data(urls.sku.list + "/" + record.skuid, api.access_token);
if (sku_data != undefined) {
dataSetPromise.push(sku_data.done(function (sku) {
dataSet.push(sku.records[0].name);
console.log(dataSet);
}));
}
})
$.when.apply(null, dataSetPromise).done(function () {
$('#demo').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>');
$('#example').dataTable({
"data": dataSet,
"columns": [
{ "title": "Product" }
],
"aoColumns": [
null
]
});
});
Upvotes: 1