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

Jquery datatable data render function called multiple times

我的数据里只有4条记录table

但是当我执行控制台日志时

                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>`;
                               }
                            }
                        },

我看到多个名字和重复的名字

我需要删除重复项,因为我必须连接一些数据才能显示。谁能告诉我哪里出了问题?

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

如果您不想看到多个日志输出,请针对您感兴趣的类型使用 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 值显示为 link,方法是将其包装在某些 HTML 中。但是在排序和过滤时,您希望 DataTables 只使用原始未更改的数据值,而不使用 HTML.

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

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