diff --git a/components/table/ng-table.component.ts b/components/table/ng-table.component.ts index a93885d..8aec29c 100644 --- a/components/table/ng-table.component.ts +++ b/components/table/ng-table.component.ts @@ -56,6 +56,7 @@ export class NgTableComponent { @Input() public set columns(values:Array) { + const names = values.map((v: any) => v.name); values.forEach((value:any) => { if (value.filtering) { this.showFilterRow = true; @@ -63,6 +64,10 @@ export class NgTableComponent { if (value.className && value.className instanceof Array) { value.className = value.className.join(' '); } + if (this._columns.length) { + const difference = this._columns.filter((x: any) => names.indexOf(x.name) === -1); + difference.forEach((d: any) => this._columns.splice(this._columns.indexOf(d), 1)); + } let column = this._columns.find((col:any) => col.name === value.name); if (column) { Object.assign(column, value);