角度如何在应用管道之后在切片管道之前如何在ngFor中查找项目数

时间:2018-12-14 05:58:31

标签: angular pipe

基本上,我试图在应用切片管道之前获取管道结果的长度, 代码示例是-

enter image description here

<ng-container *ngFor="let sub of subs | Filter1: { Name1: name1}:true |
  Filter2: { Name2: name2}:true | searchFilter: { mobilenumber: searchText }: false |
  slice: startIndex:endIndex  as result;let i=index;">
    // table code
</ng-container>

是否有可能在切片之前获得长度。我试图在ng-container中“作为结果”获取它,但我却收到“ Template parse errors:”有人解决方案吗?预先感谢

2 个答案:

答案 0 :(得分:0)

几天前我遇到了同样的问题,我要做的是创建另一个div:

<div #count>{{(subs | filter:searchText).length}}</div>
<ng-container *ngFor="let sub of subs | Filter1: { Name1: name1}:true |
  Filter2: { Name2: name2}:true | searchFilter: { mobilenumber: searchText }: false |
  slice: startIndex:endIndex  as result;let i=index;">
    // table code
</ng-container>

在.ts文件中:

@ViewChild('count') count: any;
console.log(+(this.count.nativeElement.innerText));

这看起来像是黑客,并且可能会有更好的解决方案。

答案 1 :(得分:0)

我遇到了同样的问题,我通过使用一个函数并在.ts中使用了过滤器来实现这一点

在html文件中搜索输入字段。

<div class="is-empty">
                <input class="effect-1 form-control ng-pristine ng-valid ng-touched" placeholder="Search" type="text"
                       [(ngModel)]="salesByCountryReportObj.search" (ngModelChange)="getFilteredResults()">
                <span class="focus-border"></span>
                <i class="fa fa-search"></i>
              </div>

,然后在.ts文件中

import {SearchFilterPipe} from "@app/shared/pipes/search-filter.pipe";

@Component({
  selector: 'app-sales-by-country',
  templateUrl: './sales-by-country.component.html',
  styleUrls: ['./sales-by-country.component.scss'],
  providers: [ SearchFilterPipe ]
})

export class SalesByCountryComponent implements OnInit {

constructor(private searchFilter: SearchFilterPipe){}

getFilteredResults() {
let filteredArray = this.searchFilter.transform(this.subs, this.salesByCountryReportObj.search);
console.log(filteredArray.length);
}

}