如何从自定义渲染组件刷新ng2-smart-table

时间:2019-04-01 07:32:57

标签: angular ng2-smart-table

我创建了一个自定义渲染组件,以将按钮添加到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(),但是遇到无法访问未定义属性源的错误。

1 个答案:

答案 0 :(得分:0)

我使用传播运算符刷新ng2智能表数据:

this.config.results = [... this.config.results];

如果将此行放入代码中// TODO标记,我认为它将起作用。不确定,因为您没有提供演示:)

Zendev对该操作符的操作here具有很好的可读性。我希望这会有所帮助!