我为角度为5的Handsontable准备了一个自定义渲染器,但我找不到注册渲染器的方法。我找不到任何函数,例如' registerRenderer' .Renderer函数在下面指定
coverRenderer (instance, td, row, col, prop, value, cellProperties):any
{
var escaped = Handsontable.helper.stringify(value),
button;
button = document.createElement('BUTTON');
button.setAttribute("name","Edit");
//button.onclick = this.editFood(value);
Handsontable.dom.addEvent(button, 'click', () => {
this.editFood(value);
});
Handsontable.dom.empty(td);
td.appendChild(button);
return td;
}
当我加载表格时,它显示错误,如"在" coverRenderer"下找不到注册的渲染器。命名&#34 ;.我如何注册渲染器。我正在使用角5
答案 0 :(得分:1)
经过数小时的尝试,我没有找到注册新渲染器的方法。所以我尝试了,当声明表的渲染器(我使用列对象)时,就像这样。
在我的HTML中我有:
<hot-table [data]="data" [colHeaders]="true" [columns]="columns"></hot-table>
在我的组件中这部分代码
columns: object[] = [
{ data: 'data.rowName', readOnly: true, renderer: this.rowRendering},
{ data: 'data.baseInitialMargin'},
]
rowRendering(instance, td, row, col, prop, value, cellProperties) {
console.log("Rendering row ");
Handsontable.renderers.TextRenderer.apply(this, arguments);
if(row % 2 == 0) {
td.style.backgroundColor = '#F5F5F5';
} else {
td.style.backgroundColor = 'white';
}
}
它对我来说很好,我看到我的列的对行有不同的颜色。经过大量的亵渎!
答案 1 :(得分:0)
<hot-column (data="{{row}}", title="{{row}}",[renderer]="tableOptions.options.renderer" )></hot-column>