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