【问题标题】:DataTables how to call data.json properlyDataTables如何正确调用data.json
【发布时间】:2018-12-03 20:35:47
【问题描述】:

我的 DataTable 数据当前位于 app.js 的底部,看起来像这样:

var data = {
"things": [
{
"date": {
    "display": "April 15, 2011",
    "date_order": "1"
},
"place": "Chicago, auto parts yard"
]
...
};

我像这样调用app.js 顶部的数据:

var table =  $('#table').DataTable({
      "data": data.things,
      "columnDefs": [
        { "type": "num", "targets": 1 },
        { "type": "num", "targets": 3 }
      ],
      "columns": []
...

我非常关注this,它对我有用。

显然,将数据保存在app.js 中是一种不好的做法。但是当我将数据移动到data 文件夹内的data.json 文件时,我似乎无法调用它。调用数据会看起来像这样:

var table =  $('#table').DataTable({
          "data": "../data.json",
...

因为这似乎不起作用,除非我做错了。什么是正确的语法? FWIW,我的app.jsjs/src 内,我的data.jsondata 文件夹内,与我的js 文件夹处于同一级别。

【问题讨论】:

  • 您的应用程序的根目录是什么,或者您在哪里调用app.js,您需要提供相对于文档根目录的路径,并在您的路径中包含data 文件夹
  • 我觉得,你得看看这个:datatables.net/examples/data_sources/ajax.html
  • 数据选项不是需要一个数组吗?

标签: javascript jquery syntax datatables


【解决方案1】:

使用ajax 选项通过Ajax 从外部数据源加载数据。

如果你的目录结构是:

/
├── js/
│   └── app.js
└── data/
    └── data.json

然后使用下面的代码:

var table =  $('#table').DataTable({
      // ... skipped ...
      "ajax": {
         "url": "../data/data.json",
         "dataSrc": "things"
      }
});

【讨论】:

  • 我已完成此操作,但收到了 "invalid JSON" 回复。然后我将我的 json 放入 this 以确保它是有效的;出现错误,所以我将格式正确的 json 粘贴到我的 data.json 并重试 - 仍然得到无效的 JSON 响应。
猜你喜欢
  • 1970-01-01
  • 2015-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多