Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何获取组件文件中数组的*ngFor计数_Angular_Data Binding_Frontend_Ngfor - Fatal编程技术网

Angular 如何获取组件文件中数组的*ngFor计数

Angular 如何获取组件文件中数组的*ngFor计数,angular,data-binding,frontend,ngfor,Angular,Data Binding,Frontend,Ngfor,如何将数据项的变量c count与component.ts文件中的变量绑定 在HTML文件中: 在component.ts中: 如果c>5…//c这里是数据过滤后的数据项计数 是的,我知道我可以在组件代码中手动触发someFilter,然后计算数据项的数量,但当您有管道时,这不是更好的解决方案。只需在您的组件中创建一个变量c.ts 或者你也可以直接用html来做 <span>Count: {{arrayName.length}}</span> 好吧,我想你可以用一些

如何将数据项的变量c count与component.ts文件中的变量绑定

在HTML文件中:

在component.ts中: 如果c>5…//c这里是数据过滤后的数据项计数

是的,我知道我可以在组件代码中手动触发someFilter,然后计算数据项的数量,但当您有管道时,这不是更好的解决方案。

只需在您的组件中创建一个变量c.ts

或者你也可以直接用html来做

<span>Count: {{arrayName.length}}</span> 

好吧,我想你可以用一些,比如:

<div *ngFor=".......;let i=index;let last=last;">
  <!--put here your data-->
  <ng-container *ngIf="last">
       Total Count {{i+1}}
  </ng-container>
</div>

但我认为这几乎是比扎罗。我一直认为最好的方法是有两个变量:data和datafilter,计算datafilter并在datafilter上生成*ngFor

您可以在筛选管道someFilter之后添加另一个管道,对元素进行计数并将结果存储到服务中。然后可以从任何地方访问它

transform(input: Model[]): Model[] {
    if (input && this.myService.count !== input.length) {
        this.myService.count = input.length;
    }

    return input;
}

你能提供一些代码来说明你在问什么,让事情变得更清楚吗?@DanielWStrimpel我已经编辑了我的问题,注意更新的部分。问题是我在for循环中使用了filter,所以我无法获得component.ts文件中迭代的项目数。我从未使用过常规DOM节点,但您是否看到可以使用ViewChildren来获取对节点的引用?像这样@ViewChildren'tr'tableRows:QueryList。如果这是可行的,你可以观察它的变化,并以这种方式得到长度
<div *ngFor=".......;let i=index;let last=last;">
  <!--put here your data-->
  <ng-container *ngIf="last">
       Total Count {{i+1}}
  </ng-container>
</div>
transform(input: Model[]): Model[] {
    if (input && this.myService.count !== input.length) {
        this.myService.count = input.length;
    }

    return input;
}