当前位置: 首页 > 知识库问答 >
问题:

循环外的项目计数角为2*Ngfor

束敏学
2023-03-14

我是angular的新手,我有一个愚蠢的问题,我如何显示*ngfor循环之外的实际项目数?

我使用这样的过滤和分页管道

*ngfor=“让item of items filterby:['name','category']:queryString paginate:config;let i=index;let c=count”

我知道有一个变量“count”,但当然它只在那个循环中可用,我如何在组件中获得这个变量,我需要创建新的组件,把它放在那个循环中,通过指令传递“count”还是有更简单、更干净的方法?

共有1个答案

公良光熙
2023-03-14

使用RxJS主题对我有效。

在该组件中,创建一个保存计数的变量,即filtercount,并为类型number创建一个RxJSsubject。让订阅取消订阅ondestroy上的可观察

filterCount = 0;
filteredCountSubject = new Subject<number>();
subscription: Subscription;

订阅oninit生命周期挂钩上的FilteredCountSubject

ngOnInit(): void {
    this.subscription = this.filteredCountSubject.subscribe((count) => {
        this.filterCount = count;
    });
}

在模板中,可以使用FilterCount在模板中的任何位置显示计数。使用

<div>{{filterCount}}</div>

并将FilteredCountSubject作为参数发送到FilterBy管道。

<div *ngFor="let item of items| filterBy: ['name','category']: queryString: filteredCountSubject  | paginate: config; let i = index; let c = count"></div>

FilterBy管道的Transform方法中,对筛选数组的计数执行FilteredCountSubject.Next。即。

transform(items: Array<any>, filterConfig: FilterCofig): Array<any> {
    // Arguments sent from HTML.
    const args = arguments;

    // CODE TO FILTER ITEMS BASED ON PARAMETERS.

    // Get the "filterredCountSubj" from arguments.
    // Remember that the argument index of "filteredCountSubject" is 3. As "items" is first argument.
    const filterredCountSubj = args[3];
    if (filterredCountSubj) {
        filterredCountSubj.next(items.length);
    }
    return items;
}

希望能有所帮助。

 类似资料:
  • 我需要以这样的方式使用两个循环:外循环驱动内循环进行2、4、8、16和32次迭代的计算。 例如,如果i=2(对于外循环),则内循环将迭代4次 如果i=3,则内部循环将迭代8次,依此类推。 这就是我使用的逻辑 如果有任何建议,我将不胜感激

  • 参考《项目建议书》、《需求说明书》、用户界面原型、以及各种标准和规范对数据库设计如下: (1). 结构设计: * 找实体: 实体是实体-关系模型的基本对象,是现实世界中各种事物的抽象。 凡是可以相互区 开并可以被识 的事、物、概念等对象均可认为是实体。 基本的实体列表如下: 会员 类别 商品 订单 订单详情 收货地址 商品评论 商品图片 友情链接 站内公告 ... * 找属性: 每个实体都有一组特

  • 问题内容: 在下面的示例代码中,是否真的需要counter = 0,还是有更好,更多的Python方法来访问循环计数器?我看到了一些与循环计数器有关的PEP,但它们要么被延迟要么被拒绝(PEP 212 和PEP 281)。 这是我的问题的简化示例。在我的实际应用程序中,这是通过图形完成的,整个菜单必须每帧重新绘制一次。但这以易于复制的简单文本方式进行了演示。 也许我还应该补充一点,我正在使用Pyt

  • 问题内容: 在遍历列表的Python循环中,我们可以编写: 并巧妙地遍历列表中的所有元素。有没有办法知道循环中到目前为止我循环了多少次?例如,我要列出一个清单,在处理完10个元素之后,我想对它们进行处理。 我考虑过的替代方案可能是: 要么: 是否有更好的方法(就像)来获得到目前为止的迭代次数? 问题答案: pythonic的方法是使用:

  • 此方法重复读取命令并执行它们,直到游戏结束。完成的变量为true时,表示玩家/用户点击了退出并想要结束游戏——从而退出循环并执行到方法结束。 但我观察到循环有一种奇怪的行为。它循环得非常好(省略以下行时显示stopWatch.getTime()的连续计数: 但是当我把它们放回去时,它会停止显示秒表的连续递增时间,因为它会朝着时间限制增加(在这一点上,它应该停止)。即使玩家没有输入任何命令或输入。

  • 下面程序计算字符串中字母‘a’出现的次数: apstring fruit = "banana"; int length = fruit.length(); int count = 0; int index = 0; while (index < length) { if (fruit[index] == ’a’) { count = count + 1; } index =