Таблицы данных jQuery — добавление строк в функцию, которая возвращает обещание

#javascript #jquery #datatables

#javascript #jquery #таблицы данных

Вопрос:

У меня есть одностраничное приложение, в котором я пытаюсь заполнить таблицу данных jQuery результатами вызова AJAX. Вызов AJAX возвращает обещание.

Ниже показан код, в котором я определяю таблицу и вызываю функцию AJAX для ее заполнения. Данные никогда не отображаются в таблице.

                     if ( ! $.fn.dataTable.isDataTable( '#clients' ) ) {
                    table = $('#clients').DataTable({
                        "order": [],
                        retrieve: true,
                        "select": true,
                        select: {
                            style: 'single'
                        },
                        info: false,
                        lengthChange: false,
                        ordering: false,
                        "columns": [
                            {"data": "name"},
                            {"data": "dateofbirth"},
                            {
                                "data": "id",
                                "visible": false
                            }
                        ]
                    });


                clientMaintenance.getClientsForAccount()
                    .then(function (data) {
                        table.clear();
                        table.rows.add(data).draw();
                });
  

Я вижу, что data in getClientsForAccount.then — это массив JavaScript, поэтому я не понимаю, почему данные не отображаются в таблице.

Ответ №1:

Рассмотрите возможность использования columnDefs вместо columns . Вы можете найти документацию о том, как использовать columnDefs здесь .