DataTables:.ajax 没有定义?
Posted
技术标签:
【中文标题】DataTables:.ajax 没有定义?【英文标题】:DataTables: .ajax is not defined? 【发布时间】:2019-09-13 13:07:48 【问题描述】:我正在使用 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>
我正在用这个 JS 代码初始化 DataTables:
$(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 对象的东西:
文档告诉我我的代码是正确的:https://datatables.net/reference/api/ajax.url().load()#Example
但显然我的 DataTables 没有 ajax 方法。谁能解释这里发生了什么?
【问题讨论】:
【参考方案1】:我认为您的问题是 dataTable() 与 DataTable()。检查this。在您的 javascript 中,将 var table = dt('#peopleTable').dataTable
行替换为 var table = dt('#peopleTable').DataTable
并检查 ajax
是否正常工作
【讨论】:
哦,我不敢相信这是问题所在!现在踢自己 - 非常感谢以上是关于DataTables:.ajax 没有定义?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ajax-datatables-rails 理解 Rails 中的包含
为 jquery datatables ajax 调用设置错误处理程序