【问题标题】:Datatables Uncaught TypeError: t is undefined数据表未捕获的类型错误:t 未定义
【发布时间】:2020-08-31 10:26:15
【问题描述】:

我尝试在 ajax 调用中动态创建数据表。数据表总是抛出以下异常:

Uncaught TypeError: t is undefined

这是负责的coden-p:

        $.ajax({
        type: "POST",
        url: url,
        data: {data: JSON.stringify(forms, null, 2)},
        async: true,
        dataType: "json", 
        success: function (data) {
            if(data.code === 1){
                console.log(data);
                if (data.mode === 'table'){
                    el = document.getElementById('fetcher');
                    table = document.createElement('table');
                    table.setAttribute('id', 'fetcherTable');
                    el.appendChild(table);
                    $('#fetcherTable').DataTable({
                        data: data.data.data,
                        columns: data.data.columns,
                        paging: false,
                        searching: false
                    })
                }
            }
        },
        error: function (request, error, errortext) {
            console.log("error: " + error);
            console.log(request);
        }
    });

接收到的数据格式如下:

{
   "code":1,
   "data":{
      "colums":[
         {
            "data":"id",
            "title":"ID"
         },
         {
            "data":"pid",
            "title":"PID"
         },
         {
            "data":"title",
            "title":"Titel"
         },
         {
            "data":"stand",
            "title":"Stand"
         },
         {
            "data":"filename",
            "title":"Dateiname"
         },
         {
            "data":"fileformat",
            "title":"Dateiformat"
         },
         {
            "data":"processed",
            "title":"Prozessiert"
         },
         {
            "data":"valid",
            "title":"Valide"
         },
         {
            "data":"readable",
            "title":"Lesbar"
         },
         {
            "data":"fetchid",
            "title":"FetcherID"
         }
      ],
      "data":[
         {
            "id":69,
            "pid":"None",
            "title":"None",
            "stand":"2020-08-04T12:27:39.209133+02:00",
            "filename":"20200804122905_None",
            "fileformat":"xlb",
            "processed":"2020-08-04T12:27:39.551378+02:00",
            "valid":"2020-08-04T12:27:39.212346+02:00",
            "readable":"2020-08-04T12:27:39.263416+02:00",
            "fetchid":740
         },
         {
            "id":68,
            "pid":"None",
            "title":"None",
            "stand":"2020-08-04T11:12:22.030491+02:00",
            "filename":"20200804111347_None",
            "fileformat":"xlb",
            "processed":"2020-08-04T11:12:22.436609+02:00",
            "valid":"2020-08-04T11:12:22.036467+02:00",
            "readable":"2020-08-04T11:12:22.088224+02:00",
            "fetchid":740
         },
         {
            "id":67,
            "pid":"None",
            "title":"None",
            "stand":"2020-08-04T11:11:52.807305+02:00",
            "filename":"20200804111318_None",
            "fileformat":"xlb",
            "processed":"2020-08-04T11:11:53.373856+02:00",
            "valid":"2020-08-04T11:11:52.813327+02:00",
            "readable":"2020-08-04T11:11:52.867918+02:00",
            "fetchid":740
         },
         {
            "id":66,
            "pid":"None",
            "title":"None",
            "stand":"2020-08-04T11:04:28.049269+02:00",
            "filename":"20200804110554_None",
            "fileformat":"xlb",
            "processed":"2020-08-04T11:04:28.346942+02:00",
            "valid":"2020-08-04T11:04:28.052966+02:00",
            "readable":"2020-08-04T11:04:28.105237+02:00",
            "fetchid":740
         },
         {
            "id":65,
            "pid":"None",
            "title":"None",
            "stand":"2020-08-04T11:04:03.364790+02:00",
            "filename":"20200804110529_None",
            "fileformat":"xlb",
            "processed":"2020-08-04T11:04:03.667429+02:00",
            "valid":"2020-08-04T11:04:03.371583+02:00",
            "readable":"2020-08-04T11:04:03.428413+02:00",
            "fetchid":740
         },
         {
            "id":64,
            "pid":"None",
            "title":"None",
            "stand":"2020-08-04T11:00:49.168056+02:00",
            "filename":"20200804110215_None",
            "fileformat":"xlb",
            "processed":"2020-08-04T11:00:49.443963+02:00",
            "valid":"2020-08-04T11:00:49.175522+02:00",
            "readable":"2020-08-04T11:00:49.229073+02:00",
            "fetchid":740
         },
         {
            "id":62,
            "pid":"None",
            "title":"None",
            "stand":"2020-07-31T12:20:42.140621+02:00",
            "filename":"20200731122435_None",
            "fileformat":"xlsx",
            "processed":"2020-07-31T12:20:42.740335+02:00",
            "valid":"2020-07-31T12:20:42.147128+02:00",
            "readable":"2020-07-31T12:20:42.165955+02:00",
            "fetchid":740
         },
         {
            "id":48,
            "pid":"None",
            "title":"None",
            "stand":"2020-07-30T13:14:38.574587+02:00",
            "filename":"20200730131831_None",
            "fileformat":"xlsx",
            "processed":"2020-07-30T13:14:53.562254+02:00",
            "valid":"2020-07-30T13:14:38.774570+02:00",
            "readable":"2020-07-30T13:14:38.888142+02:00",
            "fetchid":740
         }
      ]
   },
   "mode":"table"
}

我尝试了各种方法,但我无法使用 Datatables 提供的 ajax 功能,因为列需要保持动态。

任何帮助将不胜感激。

【问题讨论】:

  • 您将列添加为data.data.columns - 但 data.data.columns - 检查console.log(data.data.columns),哦,它是undefined - 为什么会这样? data == { "code":1, "data":{ "colums".... ... columns: data.data.colums 它工作正常。严重的错别字。
  • 您必须显示您的 HTML 表格。我遇到了这个错误,并且存在 HTML 语法问题。

标签: javascript jquery datatables


【解决方案1】:

我并没有清楚地向您提供有关如何使用 html 显示该内容的详细信息。此外,我没有足够的声誉让我向您询问有关通过 ajax 从服务器捕获的数据的显示的详细信息,但我仍然认为如果数据在 html 中回显,它会为您提供所需的结果和带有该错误“未捕获的错误:t 未定义”的警报或弹出窗口:

因此,我建议您查看以下讨论:

-

  1. datatables-typeerror-i-is-undefined
  2. how-can-i-fix-typeerror-i-is-undefined

一切顺利。

【讨论】:

  • HTML 有一个简单的 div 字段,用于输出表格,在其中我创建了一个带有 id 的表格元素(如代码片段所示)。
  • 好的,好的。然后让我进一步研究如何帮助您解决该问题。
  • 我已经注意到,在您的这种情况下,您只在表格中附加了 json 数据,但没有行和列分界。因此,您是否可以考虑在 table.i.e 中附加行和列附加 和 标记。
  • "您只在表中附加了 json 数据,但没有行和列分界" - 行用data: 定义,列用columns: 定义@ 987654325@ 代码。 DataTables 确定来自 <thead> columns: 的列缺失,但它并没有缺失 - 它只是 undefined(真的,数据表应该检查这一点)。
猜你喜欢
相关资源
最近更新 更多
热门标签