vini
vini

Reputation: 4742

Load dynamic data in Jquery Data Tables

 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

Answers (1)

clevertension
clevertension

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

Related Questions