Запустить канал вручную, создав новый экземпляр - производительность - PullRequest
0 голосов
/ 02 мая 2020

В моем приложении много массивов, которые фильтруются в трубе. Если я хочу добавить, изменить или удалить элемент, я должен создать новый экземпляр массива, потому что в противном случае канал не будет запущен после изменения.

Таблица:

 <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));

Мой вопрос: оказывает ли создание нового экземпляра огромное влияние на производительность или это распространенный способ использования таких каналов?

Спасибо

...