Вы должны использовать LocalDataSource
для источника, чтобы вы могли сообщить ng2-таблице, что что-то было изменено, и это должно обновить данные 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