DataTables: .ajax не определен? - PullRequest
       11

DataTables: .ajax не определен?

0 голосов
/ 24 апреля 2019

Я использую DataTables для успешного отображения некоторых данных JSON. Я хочу перезагрузить источник данных с помощью немного другого JSON, но я получаю ошибки.

Я звоню в DataTables с этой строкой:

<script type="text/javascript" src="https://cdn.datatables.net/v/bs4/jqc-1.12.4/dt-1.10.18/datatables.min.js"></script>

И я инициализирую DataTables с помощью этого кода JS:

$(function(){
    var apiUrl = '/api/people.php';
    var table = dt('#peopleTable').dataTable({
        ajax: {
            dataType: 'text',
            type: 'POST',
            url: apiUrl,
            dataSrc: function (json) {
                return $.parseJSON(json);
            }
        },
        columns: [...] // column definitions here
    });

Пока все это работает нормально, никаких проблем. Проблемы заключаются в следующем ...

Итак, у меня есть обработчик кликов:

    $('.people-type').on('click', function(){
        var id = $(this).data('id');
        table.ajax.url(apiUrl + '?type=' + id).load();
        table.draw();
    });

Когда запускается этот обработчик кликов, мне говорят, что table.ajax is not defined. Действительно, console.log(table); показывает то же самое, хотя кажется, что table связан с чем-то, что выглядит как объект DataTables:

console.log output of table

Документация говорит мне, что мой код правильный: https://datatables.net/reference/api/ajax.url().load()#Example

Но, очевидно, в моих DataTables нет метода ajax. Кто-нибудь может объяснить, что здесь происходит?

1 Ответ

1 голос
/ 24 апреля 2019

Я думаю, что ваша проблема - dataTable () и DataTable (). Проверьте это . В вашем javascript замените строку var table = dt('#peopleTable').dataTable на var table = dt('#peopleTable').DataTable и проверьте, работает ли ajax

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...