繁体   English   中英

多次调用jquery数据表数据渲染函数

[英]Jquery datatable data render function called multiple times

我的数据表中只有 4 条记录

在此处输入图片说明

但是当我做控制台日志时

                columns:[
                        {
                            data: {},  name: 'mws_name', className: 'text-center', orderable: true, searchable: true, class:"mws_name", render: function (data,type,row) {
                                console.log(row.mws_name)
                                if(data.capabilities.length == 0){
                                   return data.mws_name
                               }else{
                                return data.mws_name +'&nbsp; &nbsp;' + `<span id="tool">&#x1F6C8;</span>`;
                               }
                            }
                        },

我看到多个名称和重复项在此处输入图片说明

我需要删除重复项,因为我必须连接一些数据才能显示。 有人可以告诉我出了什么问题吗?

列渲染函数应该被多次调用 - 每个“类型”一次。 有关详细信息,请参阅正交数据文档。

如果您不想看到多个日志输出,请针对您感兴趣的类型使用if语句。

例如:

render: function ( data, type, row ) {
  if ( type === 'display' ) {
    console.log(row.mws_name);
  }
  ... // the rest of your render function logic here
}

不同type值可用于存储与display值不同的sort值或filter值。

因此,例如,您可能希望通过将display值包装在一些 HTML 中来将其display为链接。 但是在排序和过滤时,您希望 DataTables 只使用未更改的原始数据值,而不使用 HTML。

您的渲染函数可能根本不需要对这些正交值执行任何操作,在这种情况下,您可以忽略它们,就像您在问题中的代码中所做的那样。 但是,正如您所注意到的,当您使用日志记录语句时,您将在后台看到它们的效果。

因此,底线是:如果您编写的代码没有引起任何问题,您就不必担心这个问题。 如果您希望日志记录更清晰,请添加if语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM