Datatables mDataProp:val参数未定义

Datatables mDataProp:val参数未定义,datatables,Datatables,我正致力于实现一个定制的过滤器值,其中现有的html标记被剥离,用于每个适用的表列值。 (原因是过滤数据也会考虑html标记内的值,这是不需要的。) 这是一个遗留代码库,使用datatables v1.9.0 该表是使用参数构造的,例如aoColumns、aaData 对于表数据,使用数组数组:即: aaData=[ ['12450','','User 1','$500'], ['12455','...','...','...'], ['12462','...','...','...'], ['

我正致力于实现一个定制的过滤器值,其中现有的html标记被剥离,用于每个适用的表列值。 (原因是过滤数据也会考虑html标记内的值,这是不需要的。)

这是一个遗留代码库,使用datatables v1.9.0

该表是使用参数构造的,例如aoColumns、aaData

对于表数据,使用数组数组:即:

aaData=[
['12450','','User 1','$500'],
['12455','...','...','...'],
['12462','...','...','...'],
['12314','...','...','...'],
[...],
...
]
对于适用的
atatargets
函数签名为:

tableOptions[“aoColumnDefs”]=[
{
“mDataProp”:函数(源、类型、val){
console.log(“source”,val);//返回:行数组
console.log(“type”,type);//返回每种类型(set除外)
console.log(“val”,val);//返回:未定义
var obj={};
var temp=角度元素(“div”);
temp.innerHTML=val;
如果(类型=='set'){
obj.value=val;
obj.value_filter=temp.textContent | | temp.innerText;
控制台日志(对象值过滤器);
返回;
}else if(类型==='filter'){
返回val;
}else if(type==='sort'){
返回val;
}
返回对象值;
},
“sDefaultContent”:“”,
“目标”:[1]
},
]
问题是
mDataProp
中的
val
参数始终返回
undefined
,因此如果不是
sDefaultContent
属性,表数据填充将出错。 看


为什么
mDataProp
无法填充
val
参数?
mDataProp
是否支持数组数组作为数据源?(文档对此并不清楚)

在仔细研究之后,我发现当
mDataProp
用作函数时,它没有任何引用从javascript数组变量传递到datatable的数据,因此返回
val
undefined

此特定情况的解决方法是根据要使用的
aTargets
值,在
source
参数中使用直接数组位置引用。(如果使用
“atatargets”:[1]
,则必须在
mDataProp
函数中调用
source[1]

我没有使用if(type==“set”){},因为我无法访问它

“mDataProp”:函数(源、类型、val){
var obj={};
obj.value=source[1];//设置列值
//根据需要处理值。。。
obj.value_filter=obj.value+'foobar';
//用于筛选的返回值
如果(类型==‘过滤器’){
返回obj.value_过滤器;
}
//返回显示、排序等的原始值。
返回对象值;
}
点击