Javascript 如何在tablator中动态实现嵌套表
我试图在tablator中实现嵌套表,其中数据可以嵌套到n个级别。 我遇到的问题是分配给Javascript 如何在tablator中动态实现嵌套表,javascript,typescript,callback,tabulator,Javascript,Typescript,Callback,Tabulator,我试图在tablator中实现嵌套表,其中数据可以嵌套到n个级别。 我遇到的问题是分配给rowFormatter的函数无法看到createTable()方法。如何允许回调函数查看createTable()函数或类中的其他函数 private createTable(element: HTMLDivElement,jsonFileContents, schemaId: string): Tabulator { var table = new Tabulator(this.tab, {
rowFormatter
的函数无法看到createTable()
方法。如何允许回调函数查看createTable()
函数或类中的其他函数
private createTable(element: HTMLDivElement,jsonFileContents, schemaId: string): Tabulator {
var table = new Tabulator(this.tab, {
columns: this.buildHeaders(jsonFileContents, schemaId),
data: this.buildRows(jsonFileContents, jsonFileContents.schema.find(s => s.parent == null).guid),
rowFormatter:function(row) {
var childrenSchemas = jsonFileContents.schemas.filter(s => s.parent == row["schemaId"]);
if(childrenSchemas){
childrenSchemas.forEach(schema => {
var holderEl = document.createElement("div");
var tableEl = document.createElement("div");
holderEl.appendChild(tableEl);
row.getElement().appendChild(holderEl);
var subTable = this.createTable(tableEl, jsonFileContents, schema.guid); //<---HERE
});
}
}
});
}
private-createTable(元素:htmldevelment、jsonFileContents、schemaId:string):制表器{
var table=新制表器(this.tab{
列:this.buildHeaders(jsonFileContents、schemaId),
数据:this.buildRows(jsonFileContents,jsonFileContents.schema.find(s=>s.parent==null.guid),
rowFormatter:函数(行){
var childrenSchemas=jsonFileContents.schemas.filter(s=>s.parent==row[“schemaId”]);
if(儿童模式){
childrenSchemas.forEach(schema=>{
var holderEl=document.createElement(“div”);
var tabele=document.createElement(“div”);
附肢幼体(表1);
row.getElement().appendChild(holderEl);
var subTable=this.createTable(tablel,jsonFileContents,schema.guid);//您遇到的问题是因为在行格式化程序的上下文中,此引用了制表器表对象
因此,您可以在定义行格式化程序回调时使用arrow函数,这将保留父级的作用域:
rowFormatter:(行)=>{
}
或者您可以将this
的范围存储在不同的变量中,让我们调用它self
,然后在回调中使用它:
private-createTable(元素:htmldevelment、jsonFileContents、schemaId:string):制表器{
var self=这个;
var table=新制表器(this.tab{
rowFormatter:函数(行){
self.createTable();
}
});
}