我的目标是在满足条件时在制表符中运行变异器以将值更新为链接。我在 jsfiddle 中包含了一个示例。创建表时似乎变通器没有运行。我已经添加了日志,但控制台中没有显示任何日志。 JavaScript 示例是
//Sample Data
var tableData = [
{name:"Bob"},
{name:"Steve",link:"https://example.org"},
{name:"Jim"},
]
//Example Table
var table = new Tabulator("#table", {
data: tableData, //load data into table
height: 200, //enable the virtual DOM
columns: [{
title: "Name",
field: "name",
width: 300,
mutator: certificateMutator,
mutatorParams: {
certLink: "https://example.org"
},
}, ]
});
var certificateMutator = function(value, data, type, params, component) {
try {
//let cert = params;
console.log('here');
if (value == 'Steve') {
let cert = mutatorParams.certLink;
let certLink = document.createElement('a');
certLink.href = cert;
certLink.target = '_blank';
certLink.innerText = 'Certificate for' + value;
console.log(certLink);
return certLink;
} else {
return value;
}
//return value > mutatorParams.certLink;
} catch (err) {
console.log('certificateMutator err: ' + err);
}
};
创建表后,您将赋值函数分配给变量 (
certificateMutator
)。
您可以在表之前声明 mutator 变量:
var certificateMutator = function(value, data, type, params, component) { ... }
var table = new Tabulator("#table", { ... })
或者,更好的是,将
certificateMutator
声明为函数而不是变量,并且表之前或之后的放置并不重要:
var table = new Tabulator("#table", { ... })
function certificateMutator(value, data, type, params, component) { ... }