ng2-smart-table: вычислить значение другого столбца из пользовательского renderComponent - PullRequest
0 голосов
/ 12 октября 2018

Я создал stackblitz для кода.

Я хочу обновить значение столбца Total при изменении Quantity.В пользовательском компоненте, когда я обновляю данные total, они не обновляются в пользовательском интерфейсе во время обновления данных (я вижу это в консоли).

Это специфическая проблема с ng2-smart-table.

1 Ответ

0 голосов
/ 12 октября 2018

Вы должны использовать 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

...