Угловая 7 фильтров

Вы указали clicked как локальную переменную, инициализированную на 0, она никогда не может быть чем-то еще, кроме 1

. Вместо этого сделайте clicked переменную уровня класса ...

private int clicked = 0;

//...

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) 
{                                         
    clicked++;
    System.out.println(clicked);
} 
1
задан ItFreak 17 January 2019 в 09:08
поделиться

2 ответа

filter(filterCriteria: String) {
    this.filterJson = {...this.json, pools: pools.filter((element) => element.name === filterCriteria);
}

Вы могли бы написать это немного чище, используя распространение и изменив свойство пулов, как указано выше.

Я предполагаю, что вы должны хранить кэшированную копию оригинального 'this.json' для случая, когда фильтры сбрасываются.

0
ответ дан Dhananjai Pai 17 January 2019 в 09:08
поделиться

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

@Pipe({
  name: 'filter'
})
export class FilterPipe implements PipeTransform {
  transform(value: any, field: string, input: string) {
    if (input !== undefined && input.length >= 2) {
      input = input.toLowerCase();
      if (typeof value[0] === 'string') {
        return value.filter(function(el: any) {
          return el.toLowerCase().indexOf(input) > -1;
        });
      }
      return value.filter(function(el: any) {
        return el[field].toLowerCase().indexOf(input) > -1;
      });
    }
    return value;
  }
}

Добавьте этот канал, и в HTML, где бы вам ни понадобилось фильтровать

<div *ngFor="let val of filterJson | filter: "filterCriteria""> </div>

с точки зрения обнаружения изменений и производительности, каналы - это круто. Надеюсь, это поможет, всего наилучшего

0
ответ дан Akshay Rajput 17 January 2019 в 09:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: