在fnDrawCallback之后更新DataTables过滤器/排序索引

|| 我正在使用timeago jquery插件来格式化数据表列中的时间戳。 ѭ0DataTables选项允许我设置/更新格式化的时间戳,例如:
<abbr class=\"timeago\" title=\"2008-07-17T09:24:17Z\">July 17, 2008</abbr>
变成更具人类可读性的“ 2”。每当有表重绘时都会调用此方法,因此它可用于分页,服务器调用等。
myTable = $(\'#example\').dataTable({
    \"fnDrawCallback\" : function () { $(\"abbr.timeago\").timeago() },
     \"aaData\" : tableData,
     \"aoColumns\" : tableHeadings,
     \"oSearch\" : {\"sSearch\" : \"\", \"bRegex\" : true, \"bSmart\" : true, },
});
但是,“ 0”不会更新搜索索引,因此查询“ 5”不会返回任何内容。有没有一种方法可以强制DataTables更新其搜索索引? 编辑 为了清楚起见,我初始化了
tableData
tableHeadings
数组,这些数组是通过JSON传递的。这似乎很好用,因为此数据显示在表中没有任何障碍。问题是,Timeago修改了“ 0”上的DOM,这是在填充表的过滤器/排序索引之后发生的。
// tableHeadings === [\'a\', \'b\', \'DateOne\', \'DateTwo\', ...]
for(i=0; i<tableHeadings.length; i++) {
    tableHeadings[i] = { \"sTitle\" : tableHeadings[i], };
    if(tableHeadings[i].sTitle.match(/Date/)) {
        tableHeadings[i].fnRender = function (c) { // closure over i
            return function (o) {
                var iso_time = o.aData[c].replace(/\\s/, \"T\") + \"Z\";
                return \'<abbr class=\"timeago\" title=\"\'+iso_time+\'\">\'+\'</abbr>\';
            }
        }(i);
    }
}
因此我可以搜索
iso_time
,但不能搜索
2 years ago
。     
已邀请:

要回复问题请先登录注册