我创建了一个自定义渲染组件,以将按钮添加到ng2-smart-table中。按钮显示正确,我可以执行操作。我现在想要的是在操作完成后刷新表。
我该如何实现?我已经在设置中添加了一个订户,并从我的组件发出事件,但是从设置中,如何调用另一个函数来刷新源代码?
下面是代码: 设置:
TableSettings = {
columns: {
documentId: {
title: 'Document ID'
},
button: {
title: 'Task Actions',
type: 'custom',
renderComponent: CustomButtonComponent,
onComponentInitFunction :(instance: any) => {
instance.retry.subscribe(row => {
//TODO Refresh Table
});}
}
};
自定义渲染组件:
export class CustomButtonComponent implements ViewCell, OnInit {
renderValue: string;
@Input() value: string | number;
@Input() rowData: any;
@Output() retry: EventEmitter<any> = new EventEmitter();
constructor(){}
onRetry() {
this.retry.emit(this.rowData);
}
}
我尝试编写this.source.refresh(),但是遇到无法访问未定义属性源的错误。
答案 0 :(得分:0)
我使用传播运算符刷新ng2智能表数据:
this.config.results = [... this.config.results];
如果将此行放入代码中// TODO标记,我认为它将起作用。不确定,因为您没有提供演示:)
Zendev对该操作符的操作here具有很好的可读性。我希望这会有所帮助!