DataTables rows.add(array).draw()被多次调用

时间:2015-09-28 12:04:34

标签: javascript jquery angularjs datatables

我这样做是为了根据我的服务器返回的数据创建列数。我想检查数组中的数据是否与列名匹配,如果匹配,则返回yes,否则返回no。

[
    {author: 'Diego', count: 4, date: '01/01/73'},
    {author: 'Raul', count: 1, date: '02/03/09'}
]

问题是该函数似乎不止一次运行并且错误填充表,这是我的控制台日志:

Model.find({
    where: {author: {'!': 'Mariano'}},
    groupBy: ['author'],
    min: ['date']
// and count?!?!?!
}).exec(function(err, items) {
    //do something with items.
});

1 个答案:

答案 0 :(得分:0)

  

<强>原因

由于DataTables的工作方式,columns.data的函数被执行多次。虽然不清楚但是这个函数可能被多次调用,因为DataTables会根据需要调用它来调用它 - 类型检测,排序,过滤和显示(type == 'type',{{1} },type == 'sort'type == 'filter')。也可以调用它来设置单元格的数据(type == 'display')。

功能应定义如下,有关详细信息,请参阅columns.data

set == 'set'
  

备注

  • 您可以使用columns.rendercolumns.data可以被视为Demo here的只读伴侣,并且不那么复杂。
  • 你的逻辑中存在一个带有两个循环的缺陷,它们只会运行一次因为你在内循环中立即返回data: function(row, type, set, meta){ } "yes"值。我无法更正您的代码,因为它不清楚您尝试做什么。