使用外部数据集和数据渲染时的标签问题,使用数据表

Problem with tags when using external dataset and data-render, using datatables

我有一个项目,我在其中使用 DataTables 和 yadcf。 到目前为止,我在生成 DOM 时使用 PHP 来填充 table。 现在我想使用 AJAX 填充 table,它工作正常,只是它破坏了 yadcf "tags" 功能。如果我想让它工作,我需要通过 AJAX 发送完整的 HTML 格式的标签列表。 我希望它只将标签作为数组发送,并使用 DataTables 中的 "render" 函数,将它们转换为单独的 DOM 元素。

我尝试在 yadcf 的 "column_data_type" 中同时使用 "html" 和 "rendered_html",但没有任何效果。

var dataset = [{"name":"B. Gates", "tags":["js", "css", "asp"]},{"name":"S. Jobs", "tags":["js", "css", "php"]}];

var table = $('table').DataTable({
    data: dataset,
    columns: [
        {"data": "name"},
        {
            "data": "tags",
            "render": function(data, row, type){
                var tags = '';
                for (i=0; i<data.length; i++)
                {
                    tags += '<span class="badge badge-secondary">' + data[i] + '</span>&nbsp;';
                }
                return tags;
            }
        }
    ]
});

yadcf.init(table, [
    {
        column_number : 1,
        column_data_type: "rendered_html", //html
        html_data_type: "text",
        filter_default_label: "Select tag"
    }
]);

我在这里做了一个fiddle例子:https://jsfiddle.net/majbom/3d4npzsr/1/

在 "column_data_type" 中使用 "html" 时,标签列表在填充 table 后仍为空。 当我使用 "rendered_html" 时,我得到一个列表,其中包含 table 中所有代表的标签组合。 我想要的是 table.

中所有代表标签的列表

提前致谢:)

您应该在 yadcf init 中为该列使用 text_data_delimiter: String.fromCharCode(160),使用 String.fromCharCode(160) 的原因是因为不知何故 &nbsp; 被用作字符串中的分隔符(而不是正常 space

像这样

yadcf.init(table, [
    {
    column_number : 1,
    column_data_type: "rendered_html", //html
    html_data_type: "text",
    filter_default_label: "Select tag",
    text_data_delimiter: String.fromCharCode(160)
  }
]);

https://jsfiddle.net/wcbkzxnt/1/