【问题标题】:Why does jQuery DataTable show "No data available in table" when there is a populated tbody当有填充的tbody时,为什么jQuery DataTable会显示“表中没有可用数据”
【发布时间】:2017-08-03 23:54:34
【问题描述】:

所以我在一个通过 erb 填充的苗条文件中有一个表。当我在其上初始化 DataTable 时,它​​会在表中附加一个新的 tbody,其内容为“表中没有可用数据”。这是 html.slim 部分

table#search.table.table-striped.search
  thead
    tr
      th Header
      th Header
      th Header
      th Header
      th Header
      th Header
      th Header
      th Header
      th Header
      th Header
      th Header
  tbody
  - @search_result.each do |result|
    tr
      td
        = result[data]
      td
        = result[data]
      td
        = result[data]
      td
        = result[data]
      td
        = result[data]
      td
        = result[data]
      td
        = result[data]
      td
        = result[data]
      td
        = result[data]
      td
        = result[data]
      td
        = result[data]

这是我的 js:

var SearchPage = function() {
  this.$table = $('#search');
  this.init();
}

SearchPage.prototype = {
  init: function() {
    this.$table.DataTable({
      autoWidth: false,
      paging: false,
      info: false,
      searching: false
    });
  }
}

$(function() {
  var newSearch = new SearchPage();
});

我不确定我的语法错误在哪里。 DataTable 应该能够在不这样做的情况下从 DOM 中获取数据,并且尽我所能告诉他们这符合他们的文档。我做错了什么?>

【问题讨论】:

    标签: jquery ruby-on-rails datatables


    【解决方案1】:

    事实证明,问题根本不在于 DataTable。问题在于 slim 呈现 HTML 的方式。具备以下条件:

    tbody
      @search_result.each do |result|
    

    会渲染两个 tbody 元素,第一个是空的。 DataTable 试图读取空的,并产生了错误。

    【讨论】:

      猜你喜欢
      • 2020-12-27
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      • 2017-01-21
      • 1970-01-01
      相关资源
      最近更新 更多