Я работаю над реализацией пользовательского значения фильтра, при котором существующие html-теги удаляются для каждого применимого значения столбца таблицы. (Причина в том, что фильтрация данных также учитывает значения внутри тегов html, а это нежелательно.)
Это устаревшая кодовая база с использованием таблиц данных v1.9.0.
Таблица построена с использованием параметров, таких как aoColumns, aaData.
Для данных таблицы используется массив массивов: т.е.:
aaData = [
['12450','<a href='javascript:doStuff(123, 456)>value2</a>', 'User 1', '$500'],
['12455','...','...','...'],
['12462','...','...','...'],
['12314','...','...','...'],
[...],
...
]
Для таблицы необходимо использовать mDataProp
для применимых aTargets
Сигнатура функции:
tableOptions["aoColumnDefs"] = [
{
"mDataProp": function (source, type, val) {
console.log("source ", val); // This returns: row array
console.log("type ", type); // This returns each type (except for 'set')
console.log("val ", val); // This returns: undefined
var obj = {};
var temp = angular.element('div');
temp.innerHTML = val;
if (type === 'set') {
obj.value = val;
obj.value_filter = temp.textContent || temp.innerText;
console.log(obj.value_filter);
return;
} else if (type === 'filter') {
return val;
} else if (type === 'sort') {
return val;
}
return obj.value;
},
"sDefaultContent": '',
"aTargets": [ 1 ]
},
]
Проблема в том, что параметр val
внутри mDataProp
всегда возвращает undefined
, поэтому заполнение данных таблицы будет ошибочным, если не для свойства sDefaultContent
.См. эту скрипку .
Почему mDataProp
не может заполнить параметр val
?mDataProp
поддерживает массив массивов в качестве источника данных? (документация не ясна по этому поводу)