В моем приложении много массивов, которые фильтруются в трубе. Если я хочу добавить, изменить или удалить элемент, я должен создать новый экземпляр массива, потому что в противном случае канал не будет запущен после изменения.
Таблица:
<table [data]="customers | dataFilter: filterQuery"> </table>
Труба:
@Pipe({
name: 'dataFilter'
})
export class Filterpipe implements PipeTransform {
transform(array: any[], query: string, filterIndex = 'label'): any {
console.log('activated');
if (query) {
return _.filter(array, row => row[filterIndex].toLowerCase().indexOf(query.toLowerCase()) > -1);
}
return array;
}
}
app.component.ts:
//Add Element
addElement(){
this.customers.push({name: 'John', age:30);
}
После добавления элемента я должен изменить экземпляр - так, чтобы известный элемент немедленно отображался в таблице.
this.customers = JSON.parse(JSON.stringify(this.customers));
Мой вопрос: оказывает ли создание нового экземпляра огромное влияние на производительность или это распространенный способ использования таких каналов?
Спасибо