Угловое ли условие от html до компонента? - PullRequest
0 голосов
/ 29 октября 2018

У меня есть эта проблема, очень новая в Angular: я хочу сделать несколько фильтров в таблице. Поэтому, чтобы достичь этого, я хочу сделать условие «если» на входе, например, если у меня есть заголовок таблицы с именем «Entity», тогда он сообщит моему классу компонентов, что это входной объект.

как мне этого добиться?

  public performFilter(filterBy: string): IDonnee[] {
      filterBy = filterBy.toLocaleLowerCase();
      // I'd want to put the condition here like (if input.class == "entity then.."
      if (this.isFiltered) {
        return this.filteredDonnees.filter((donnee: IDonnee) =>
          donnee.entity.toLocaleLowerCase().indexOf(filterBy) !== -1);
      } else {
          return this.donnees.filter((donnee: IDonnee) =>
            donnee.entity.toLocaleLowerCase().indexOf(filterBy) !== -1);
        }
  }
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<table *ngIf="donnees && donnees.length">
  <th>
    Entity
    <br>
    <input size={{thSize}} ng-model="entity" class="entity"[(ngModel)]="listFilter">
  </th>
  <th>
    bdrID
    <br>
    <input size={{thSize}} ng-model="bdrId" class="bdrId" [(ngModel)]="listFilter2">
  </th>
</table>

Например, я хотел бы получить имя класса ввода в моем коде JS.

Извините, если я не дал понять, что вы можете задать любой вопрос, и заранее спасибо!

1 Ответ

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

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

Если это так, вы можете попробовать что-то вроде этого: Укажите идентификатор для элементов ввода: input id = "donnees" (click) = "executeFilter ($ event)" Аналогично для обоих элементов TH. По какой-то странной причине я не могу вставить полный код таблицы.

Вместо того, чтобы иметь несколько массивов, я думаю, что лучше иметь один объект со всеми массивами, чтобы можно было фильтровать по идентификатору, переданному из $ event. Например: filterObject => donnees [], FilterDonnees []

public performFilter(event) {
  return this.filterObject[event.target.Id].filter(// write your condition here);
}

Дайте мне знать, если это то, что вы искали.

...