Как узнать длину отфильтрованных данных после уже отфильтрованного в angular4 - PullRequest
0 голосов
/ 17 мая 2018

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

Ошибка -

Parser Error: Bindings cannot contain assignments at column 32 in 
[arrayCount1 of ctrl.filtered = (result| filter: query)]

Я понял ошибку, но как получить число из числа отфильтрованных данных. Нужно ли что-то делать в файле .ts.

Код для этого -

транзакция.ponent.html

   <td style="width:50%">
            <input class="form-control" id="input1-group1 " 
           style="margin-top:20px" type="text" name="search" 
           placeholder="Enter Search Text"
              [(ngModel)]="filterdata"  
        (keyup.enter)="searchByText(filterdata)">
          </td>
          <td style="width:50%">
            <button type="submit" class="input-group-addon" 
      style="margin-left:0px;width:65px;margin-top:20px" id="faIcon" 
            (click)="searchByText(filterdata)" >
              &nbsp;&nbsp;&nbsp;
              <i class="fa fa-search "></i>
            </button>
          </td>

   ....//code

   <div class="panel panel-default panel-transparent">
    <div class="panel-heading text-left">
    <h2> Transaction  </h2>
   <label *ngIf="toShowCount" id="arrayCountId"> Number of searched 
     data  : {{arrayCount}}</label>
    <ul>

    <li *ngFor = "arrayCount1 of ctrl.filtered = (result| filter: 
     query)"
   id="arrayCountId">Number of filtered search data : {{arrayCount1}} 
    </li>

    </ul>
     </div>
   </div>

транзакция.ponent.ts

  this.http.post("http:...)
  .map(result => this.result = result.json())
  .subscribe((res: Response) => {

     this.records = res;

     this.toShowCount =true;

     this.arrayCount = this.result.length;

     console.log("ArrayCount = " , this.arrayCount)

У меня есть ссылка напохожий вопрос, но в AngularJS:

Как отобразить длину отфильтрованных данных ng-repeat

1 Ответ

0 голосов
/ 17 мая 2018

Вы смешиваете Angular с Angular JS.Мы используем pipes вместо filter в Angular.

Чтобы отобразить результат отфильтрованного массива result, вам просто нужно проверить свойство length.

<div class="panel panel-default panel-transparent">
    <div class="panel-heading text-left">
    <h2> Transaction  </h2>
   <label *ngIf="toShowCount" id="arrayCountId"> Number of searched 
     data  : {{arrayCount}}</label>
    <ul>

    <li *ngFor= "let count of (result| pipe: 
     'pipeName')"
   id="arrayCountId">

  Number of filtered search data :  <span [textContent]="(result| pipe:'pipeName').length"> </span>
    </li>

    </ul>
     </div>
   </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...