如何解决JS 将 forEach 变量传递给查找函数
请帮助我理解如何将此参数传递给 formatter
的查找函数。我尝试为制表符动态创建表格行:
有效:
keys = ["name","price","number"];
doAjax().then( variable => {
if ( products ) {
let cols = [{title: "number",field: "number"}];
keys.forEach(function ( key ) {
let formatter = "";
// check if key is number
if ( key == "number" ) {
formatter = function( cell ) {
return `<div íd="${key}">${cell.getValue()}</div>`;
};
};
cols.push({title: key,field: "data." + key,formatter: formatter});
});
};
});
不起作用:
let testf = function( cell,key ) {
return `<div íd="${key}">${cell.getValue()}</div>`; // key is not accessible here
};
keys = ["name","number"];
doAjax().then( variable => {
if ( products !== null ) {
let cols = [{title: "number",field: "number"}];
keys.forEach(function ( key ) {
let formatter = "";
// check if key is number
if ( key == "number" ) {
formatter = testf(cell,key); // not working
};
cols.push({title: key,formatter: formatter});
});
};
});
上下文代码:
var table = new Tabulator("#products",{
ajaxURL: "api/products",columns: cols,});
我如何重写第二种方法,以便它传递参数键?
解决方法
创建一个函数,以初始 cell
作为参数,并用它和 testf
调用 key
。
if (key == "number") {
formatter = cell => testf(cell,key);
};
,
只需将 key 作为第一个参数,并绑定它:
let testf = function( key,cell ) {
return `<div íd="${key}">${cell.getValue()}</div>`;
}
formatter = testf.bind(key);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。