即使从服务器接收数据,JQuery DataTable数据也不可用

时间:2017-05-26 17:45:18

标签: datatables

我想绘制一个表来显示来自我服务器的用户数据。 首先,我使用Ajex获取用户数据:

var usersList = {};
usersList.users = ["Afthieleanmah", "Hadulmahsanran","tabletest1"];
var dataSet1=[];
var i;

$.ajax({
    url:  '../users',
    type: 'POST',
    contentType: 'application/json',
    cache: false,
    data: JSON.stringify(usersList),
    success:function(response, text){
        if(response.users !== undefined){
            dataSet1 = response.users;
        } 
    }
});

我可以成功获取用户数据并将数据保存在dataSet1中,因为JSON数组包含Objects。它的格式是这样的:

   [
       { 
          username: "Tiger Nixon",
          job_title: "System Architect",
          city: "Edinburgh",
          extn: "5421"
       },
       { 
          username: "Tiger Nixon2",
          job_title: "System Architect",
          city: "Edinburgh",
          extn: "5421"
       }
   ]

然后我创建一个表并传入配置:

// table confirgurations
var tableConfig={
    pageLength: 5,
    bLengthChange: false,
    columns:[
        {data: "username", title: "Name"},
        {data: "job_title", title: "Position"},
        {data: "city", title: "City"}
    ],
    data:dataSet1
};

// create table 
var userTable=$('#table-id').DataTable(tableConfig);

我确信我可以从API" / users"获取用户数据。并将其保存到dataSet1中。但每次我加载包含表格的页面时,表格始终显示"表格中没有可用的数据"。我在这一行设置了一个断点:

 var tableConfig={

让它继续运行。奇怪的事情发生了。表格显示数据..............不知道为什么

1 个答案:

答案 0 :(得分:0)

您应该在<{1}}函数中收到来自服务器的响应后初始化您的表格。如果您多次执行Ajax请求,请使用destroy

例如:

success

但理想情况下,您应该让jQuery DataTables使用ajax选项执行Ajax请求。