ng2-smart-table:从自定义renderComponent计算其他列值

时间:2018-10-12 05:50:16

标签: angular ng2-smart-table

我已经为代码创建了stackblitz

我想在Total更改时更新Quantity列的值。在自定义组件中,当我更新数据中的total时,在更新数据时不会在UI中对其进行更新(我可以在控制台中看到它)。

ng2-smart-table的特定问题。

1 个答案:

答案 0 :(得分:0)

您应该使用LocalDataSource作为来源,以便您可以告诉ng2-table某些内容已更改,并且应该刷新数据source.refresh()

app.component.ts中的更改

source: LocalDataSource;

设置更改

 quantity: {
        title: 'Quantity',
        type: 'custom',
        renderComponent: CustomComponent,
        sort: false,
        editable: true,
        onComponentInitFunction: (instance: any) => {
          instance.save.subscribe(row => {
            this.source.refresh();
          });
        }
      },

custom.compnent.ts中的更改

export class CustomComponent {

    rowData: any;

   @Output() save: EventEmitter<any> = new EventEmitter();

    onModelChange(table) {
        this.rowData.total = this.rowData.amount * this.rowData.price;
        this.save.emit(this.rowData);
    }
}

工作演示在这里-https://stackblitz.com/edit/ng2-smart-table-column-cal-m9nxpg