javascript - 数据表 mRender "object is not a function"错误

标签 javascript function object datatables

我正在使用 DataTables 创建一个表。初始化表格后,我想更改一些控制其中一列如何呈现的设置,如下所示:

var st = mytable.dataTable().fnSettings();

$.extend(st.aoColumns[2], {
    "mRender": function (val, type, row) {
        return "xxx";
    }           
});

但是当我加载页面时,我得到: “对象不是 DataTables.js 中的函数:181(下面标有“这是错误行”):

/* Cache the data get and set functions for speed */
var mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null;
var mData = _fnGetObjectDataFn( oCol.mData );

oCol.fnGetData = function (oData, sSpecific) {
    var innerData = mData( oData, sSpecific );

    if ( oCol.mRender && (sSpecific && sSpecific !== '') ) {
        return mRender( innerData, sSpecific, oData ); <== this is the error line
    }
    return innerData;
};

似乎某些缓存机制假设 mRender 值在初始化后不会更改,但实际上 DataTables 允许通过 fnSettings 方法进行外部设置操作,该方法明确记录了它用于“外部操作”。

关于如何解决这个问题有什么想法吗?

最佳答案

好的找到了解决方案 - 使用 aoColumnDefs 而不是 aoColumns,并在 aTargets 数组中指定列目标:

var aoColumnDefs = [{
    "mRender": function (val, type, row) {
        return "xxx";
    },
    "aTargets":[2]
}];
mytable.dataTable({aoColumnDefs:aoColumnDefs});

关于javascript - 数据表 mRender "object is not a function"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16394230/

相关文章:

java - 在 Java 中处理对象数据

javascript - 评论会影响性能吗?

javascript - 以编程方式查看从另一个文件加载的 html 元素的内容

javascript - 如何在 React.JS 中创建一个简单的列表制作应用程序?

scala - 创建未命名的隐式类或函数

javascript - 继续检查 Div 是否包含特定文本

javascript - 如何在 JS 中创建重用返回结果的可变高阶函数

java - 未初始化的对象与新对象

javascript - 将 div 中的高度与 float 左右对齐

通过对象的 JavaScript 值求和