首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何重新计算筛选数组上的ngFor?

在Angular中,ngFor是一个结构指令,用于在模板中循环渲染数组或可迭代对象的元素。当数组发生变化时,ngFor默认会重新计算和更新渲染的元素。然而,有时候我们需要手动触发ngFor的重新计算和筛选。

要重新计算筛选数组上的ngFor,可以采取以下步骤:

  1. 创建一个新的数组或对现有数组进行修改,以满足筛选条件。这可以通过使用JavaScript的数组方法(例如filter、map等)来实现。
  2. 将新的数组赋值给原始数组,以触发ngFor的重新计算和更新。确保在赋值时使用不可变性原则,即创建一个新的数组对象而不是修改原始数组对象。

下面是一个示例代码,演示如何重新计算筛选数组上的ngFor:

在组件类中定义一个原始数组和一个筛选后的数组:

代码语言:txt
复制
import { Component } from '@angular/core';

@Component({
  selector: 'app-example',
  template: `
    <div *ngFor="let item of filteredItems">
      {{ item }}
    </div>
  `
})
export class ExampleComponent {
  items: string[] = ['item1', 'item2', 'item3', 'item4'];
  filteredItems: string[] = [];

  filterItems() {
    // 根据筛选条件过滤原始数组
    this.filteredItems = this.items.filter(item => item.includes('item'));
  }
}

在模板中使用ngFor指令来循环渲染筛选后的数组。

在组件类中,通过调用filterItems()方法来重新计算筛选数组:

代码语言:txt
复制
import { Component } from '@angular/core';

@Component({
  selector: 'app-example',
  template: `
    <button (click)="filterItems()">重新计算筛选数组</button>
    <div *ngFor="let item of filteredItems">
      {{ item }}
    </div>
  `
})
export class ExampleComponent {
  items: string[] = ['item1', 'item2', 'item3', 'item4'];
  filteredItems: string[] = [];

  filterItems() {
    // 根据筛选条件过滤原始数组
    this.filteredItems = this.items.filter(item => item.includes('item'));
  }
}

当点击"重新计算筛选数组"按钮时,将会触发filterItems()方法,重新计算筛选数组并更新ngFor的渲染结果。

这是一个简单的示例,你可以根据实际需求和筛选条件进行修改。此外,你还可以结合其他Angular特性和功能,如订阅数据变化、使用管道等,来实现更复杂的筛选和重新计算逻辑。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)、腾讯云对象存储(COS)、腾讯云数据库MySQL版、腾讯云人工智能服务等。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的详细信息和使用指南。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

《程序员数学:筛选素数》—— 如何计算100内素数?

对于一个素数判断,通常可以使用折半求模计算方式来判断是否为素数。那么如果是给定范围1...N个数字,找出这里所有的素数要怎么计算呢?...那么本章中小傅哥就来分享另外一种筛选素数计算方式埃拉托色尼筛法 二、什么是埃拉托色尼筛法 在数学中,Eratosthenes 筛法是一种古老算法,它可以用于查找不超过给定极限所有素数。...这之所以有效,是因为在这一点,较小倍数“p”将已标记为“false”。—— 这是一个优化处理。...最终筛选后剩余数字就是素数。...整个计算过程时间复杂度是:O(n log(log n)) 五、常见面试题 如何判断一个数字是否为素数 如何计算1-n中有多少个素数 - END - ---- 你好,我是小傅哥。

64910
  • C语言如何计算数组长度

    }; int length = 0; // 计算数组中数据长度 : // 所有数据字节数除以一个数据字节数即为数据个数 : length = sizeof(arr) / sizeof(int...(arr) / sizeof(int); printf(“test_数组总字节数为: %d\n”,sizeof(arr)); printf(“test_数组长度为: %d\n”,length);.../ 计算数组中数据长度 : // 所有数据字节数除以一个数据字节数即为数据个数 : length = sizeof(arr) / sizeof(int); printf(“main_数组长度为...因为将数组名作为实参时, 就是将数字首地址作为实参, 所以在test函数中输出sizeof(arr)其实得到是一个整型数组长度(所占字节数), 所以结果是8, 再用其除以int所占字节数...(这样是得不到准确数组长度, 建议操作是在定义数组函数中计算数组长度, 在以实参形式传递出去, 这样其他函数变可以获得数组长度) 发布者:全栈程序员栈长,转载请注明出处:https:

    2.7K30

    如何在矩阵显示“其他”【3】切片器动态筛选猫腻

    往期推荐 如何在矩阵显示“其他”【1】 如何在矩阵显示“其他”【2】 正文开始 一篇文章末尾,我放了一张动图: 当年度切片器变换筛选时,子类别中显示种类和顺序是不相同,但不变是...那么我们基本可以得出结论了:数据表是由子类别和年度组合构成,把每年子类别对应销售额放进去,通过筛选年度切片器,达到选择不同年份时显示不同销售额。 我们根据以上思路试着来建立模型。...1.建立子类别和年度组合表 使用SUMMARIZE函数将子类别和年度组合列出来 子类别表2 = SUMMARIZE('data',data[子类别],'日期表'[年度]) 2.添加sales计算列...同样,按照其他列进行排序,也是会得到同样结果: 事情好像无法往下进行了。 但是铁人王进喜有句名言:“有条件要,没有条件,创造条件也要。” 我们再重新审视一下这个按列排序错误。...%从高到低排序 所以,剩下问题就是如何在不显示子类别前面的年份前提下,让不同年份对应子类别不同,如下图所示: 关注【学谦数据运营】,下篇回答这个问题。

    2.5K20

    数据科学 IPython 笔记本 9.7 数组计算:广播

    9.7 数组计算:广播 本节是《Python 数据科学手册》(Python Data Science Handbook)摘录。...译者:飞龙 协议:CC BY-NC-SA 4.0 我们在上一节中看到,NumPy 通用函数如何用于向量化操作,从而消除缓慢 Python 循环。...广播示例 1 让我们看一下将二维数组和一维数组相加: M = np.ones((2, 3)) a = np.arange(3) 让我们考虑这两个数组操作。数组形状是。...,请参阅“NumPy 数组计算:通用函数”。...使用标准约定(参见“Scikit-Learn 中数据表示”),我们将其存储在10x3数组中: X = np.random.random((10, 3)) 我们可以使用第一维“均值”聚合,来计算每个特征平均值

    68420

    利用Numpy中ascontiguousarray可以是数组在内存连续,加速计算

    好像是不连续数组shape不兼容。...带着这些疑问,我搜了下资料,在stack overflow发现一个比较详细回答,简单明白地将Numpy里面的数组连续性问题解释清楚了,因此这里翻译过来,希望能帮助到别的有同样疑问小伙伴。 ...这个数组看起来结构是这样:   在计算内存里,数组arr实际存储是像下图所示:   这意味着arr是C连续(C contiguous),因为在内存是行优先,即某个元素在内存中下一个位置存储是它同行下一个值...同理,在arr.T,列操作比行操作会快些。  4....: False   WRITEABLE : True   ALIGNED : True   WRITEBACKIFCOPY : False   UPDATEIFCOPY : False  如果进行在行

    1.9K00

    数据科学 IPython 笔记本 9.5 NumPy 数组计算:通用函数

    9.5 NumPy 数组计算:通用函数 本节是《Python 数据科学手册》(Python Data Science Handbook)摘录。...也就是说,它为数据数组最优计算,提供了一个简单而灵活接口。 NumPy 数组计算速度非常快,也可能非常慢。使其快速关键是使用向量化操作,通常通过 NumPy 通用函数(ufunc)实现。...Python 相对迟缓通常体现在重复许多小操作情况下 - 例如通过循环遍历数组来操作每个元素。 例如,假设我们有一个数组,我们想计算每个值倒数。...探索 NumPy ufunc ufunc有两种形式:一元ufunc,它在单个输入运行,二元ufunc,在两个输入运行。我们将在这里看到这两种函数例子。...我们将在这里概述ufunc一些专用特性。 指定输出 对于大型计算,指定存储计算结果数组,有时很有用。它不会创建临时数组,可以用于将计算结果直接写入你希望内存位置。

    92520

    计算机程序思维逻辑 (6) - 如何从乱码中恢复 ()?

    ASCII 世界虽然有各种各样字符,但计算机发明之初没有考虑那么多,基本只考虑了美国需求,美国大概只需要128个字符,美国就规定了这128个字符二进制表示方法。...128个字符用7个位刚好可以表示,计算机存储最小单位是byte,即8位,ASCII码中最高位设置为0,用剩下7位表示字符。...Ascii码对美国是够用了,但对别的国家而言却是不够,于是,各个国家各种计算机厂商就发明了各种各种编码方式以表示自己国家字符,为了保持与Ascii码兼容性,一般都是将最高位设置为1。...解析二进制时,如何知道是两个字节还是四个字节表示一个字符呢?看第二个字节范围,如果是0x30到0x39就是四个字节表示,因为两个字节编码中第二字节都比这个大。...Unicode 以上我们介绍了中文和西欧字符与编码,但世界还有很多别的国家字符,每个国家各种计算机厂商都对自己常用字符进行编码,在编码时候基本忽略了别的国家字符和编码,甚至忽略了同一国家其他计算机厂商

    1.2K50

    AngularDart4.0 指南- 模板语法二 顶

    以下是如何设置没有绑定属性: <!...当模板表达式计算结果为true时,Angular会添加类。 当表达式为false时,它将删除类。 <!...这些元素所有组件都保留在内存中,Angular可能会继续检查更改。 您应用可能会占用相当可观计算资源,会降低用户不可见性能。...例如,重新查询服务器可能会重置所有新英雄对象列表。 大多数,如果不是全部,以前显示英雄。 你知道这一点,因为每个英雄ID没有改变。 但是Angular只能看到新对象引用列表。...例如,您可以将数字显示为货币,强制文本为大写,或筛选列表并对其进行排序。 对于这些小型转换来说,Angular 管道是一个很好选择。 管道是简单函数,它接受一个输入值并返回一个转换后值。

    29.9K20

    AngularDart 4.0 高级-结构指令 顶

    Angular拥有强大模板引擎,可以让我们轻松操纵元素DOM结构。 本指南介绍Angular如何用结构指令操纵DOM,以及如何编写自己结构指令来完成相同操作。 尝试一下实例(查看源代码)。...从积极方面来说,再次显示元素很快。 该组件以前状态被保存并准备显示。 该组件不会重新初始化 - 这种操作可能很昂贵。 所以隐藏和展示有时候是正确。...ngFor字符串之外所有内容仍在宿主元素()中且移动到时保持不变。 在这个例子中,[ngClass] =“odd”保留在。...这些是两个NgFor输入属性名称。 这就是指令如何得知列表是heroes,并且track-by功能是trackById。 当NgFor指令遍历列表时,它会设置并重置其自己上下文对象属性。...这个用例有一个简单解决方案:将*ngIf放在包裹*ngFor元素容器元素。 一个或两个元素可以是一个temple,所以你不必引入额外HTML级别。

    16.1K20
    领券