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

如何使用*ngFor structural指令减少在表中显示列表(从数据库获取的json对象)的时间?

ngFor是Angular框架中的一个结构性指令,用于在模板中循环渲染列表数据。使用ngFor可以减少在表中显示列表的时间,具体步骤如下:

  1. 获取数据库中的JSON对象数据。
  2. 在组件中定义一个变量,用于存储从数据库获取的JSON对象数据。
  3. 在模板中使用*ngFor指令,通过遍历JSON对象数据来动态生成表格行。
  4. 在*ngFor指令中使用trackBy函数,以提高性能。trackBy函数用于指定如何跟踪列表中的每个项的唯一标识符。
  5. 在模板中使用插值表达式或属性绑定,将JSON对象中的数据显示在表格中的对应列中。

下面是一个示例代码:

在组件中:

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

@Component({
  selector: 'app-table',
  templateUrl: './table.component.html',
  styleUrls: ['./table.component.css']
})
export class TableComponent {
  jsonData: any[]; // 用于存储从数据库获取的JSON对象数据

  constructor() {
    // 从数据库获取JSON对象数据的逻辑
    this.jsonData = [
      { id: 1, name: 'John' },
      { id: 2, name: 'Jane' },
      { id: 3, name: 'Bob' }
    ];
  }

  trackByFn(index: number, item: any): number {
    return item.id; // 使用id作为唯一标识符
  }
}

在模板中:

代码语言:txt
复制
<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>Name</th>
    </tr>
  </thead>
  <tbody>
    <tr *ngFor="let item of jsonData; trackBy: trackByFn">
      <td>{{ item.id }}</td>
      <td>{{ item.name }}</td>
    </tr>
  </tbody>
</table>

在上述示例中,我们通过*ngFor指令遍历jsonData数组,并使用trackBy函数指定以item.id作为唯一标识符。这样可以在数据发生变化时,只更新发生变化的部分,提高性能。

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

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

相关·内容

Angular 6.x 指令快速入门

(图片来源于网络) 第一节 - 创建指令 Angular ,我们可以使用 HostBinding 装饰器,实现元素属性绑定。...指令作用 该指令用于演示如何利用 Attribute 装饰器,获取指令宿主元素上自定义属性 author 值。... Angular ,我们可以通过 ViewChild 装饰器来获取视图中定义模板元素,然后利用 ViewContainerRef 对象 createEmbeddedView() 方法,创建内嵌视图...指令功能 该指令实现 ngIf 指令相反效果,当指令输入条件为 Falsy 值时,显示DOM元素。...let item 和 index as i 会被转换为 let-item 和 let-i="index" ngFor 指令列表上循环,每个循环中都会设置和重置它自己上下文对象属性。

3.2K40

AngularDart 4.0 高级-结构指令

该指南在谈论其属性以及指令功能时引用了指令类。 指南描述如何指令应用于HTML模板元素时引用了属性(attribute)名称。...NgFor指令具有比本指南中显示NgIf更多功能,包括必需和可选。 至少NgFor需要一个循环变量(let hero)和一个列表(heroes)。...这些是两个NgFor输入属性名称。 这就是指令如何得知列表是heroes,并且track-by功能是trackById。 当NgFor指令遍历列表时,它会设置并重置其自己上下文对象属性。...当你编写自己结构指令时,可以使用这些微观语法机制。 研究NgIf和NgFor源代码是了解更多信息好方法。 模板输入变量 模板输入变量是一个变量,其值可以模板单个实例引用。...没有合适宿主元素时使用作为分组元素。 Angular将星号(*)语法解析为。 NgIf,NgFor和NgSwitch内置指令如何工作。

16K20

Angular 显示英雄列表

最终,你会远端数据服务器获取它。但是目前,你需要创建一些模拟英雄(some mock heroes),并假设这些数据是远程服务器上获取。...当依次遍历这个列表时,hero 会为每个迭代保存当前英雄对象。 不要忘了 ngFor 前面的星号(*),它是该语法关键部分。 浏览器刷新之后,英雄列表出现了。...Angular 会把所点击  上 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式定义那个。...英雄们显示列表,并且所点英雄详情也显示了页面的下方。 修复 - 使用 *ngIf 来隐藏空白细节 该组件应该只有当 selectedHero 存在时才显示所选英雄详情。...用户可以选择一个英雄,并查看该英雄详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 样式类。

4.4K70

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

他们输入框输入文字。 他们列表中选择项目。 他们点击按钮。 这样用户操作可能导致数据流向相反方向:元素到组件。 了解用户操作唯一方法是侦听某些事件,例如按键,鼠标移动,点击和触摸。...为什么你只能应用一个结构指令到一个元素。 本节介绍常见结构指令: NgIf:有条件地DOM添加或删除元素。 NgFor:为列表每个项目重复一个模板。...您可以定义一个HTML块来定义应该如何显示单个项目。 您告诉Angular将该块用作呈现列表每个项目的模板。...Angular把这条指令翻译成一个围绕宿主元素,然后重复使用这个模板为列表每个英雄创建一组新元素和绑定。 “结构指令”指南中了解微语法。...*ngFor和trackBy NgFor指令可能表现不佳,特别是大型列表。 对一个项目,删除项目或添加项目的小改动可以触发DOM操作级联。

29.9K20

Angular 显示英雄列表

最终,你会远端数据服务器获取它。但是目前,你需要创建一些模拟英雄(some mock heroes),并假设这些数据是远程服务器上获取。...当依次遍历这个列表时,hero 会为每个迭代保存当前英雄对象。 不要忘了 ngFor 前面的星号(*),它是该语法关键部分。 浏览器刷新之后,英雄列表出现了。...Angular 会把所点击  上 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式定义那个。...英雄们显示列表,并且所点英雄详情也显示了页面的下方。 修复 - 使用 *ngIf 来隐藏空白细节 该组件应该只有当 selectedHero 存在时才显示所选英雄详情。...用户可以选择一个英雄,并查看该英雄详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 样式类。

4K30

AngularDart4.0 英雄之旅-教程-04明细 顶

-- each hero goes here --> 下一步你将添加英雄名字 使用ngFor指令罗列英雄 目标是将组件英雄列表绑定到模板,迭代它们,并单独显示它们。...ngFor指令遍历组件英雄列表并为该列表每个英雄呈现该模板一个实例。 表达式部分将hero标识为模板输入变量,其中包含每个迭代英雄详情。...刷新浏览器,该应用程序不再失败,名称列表再次显示浏览器。 当没有选定英雄时,ngIf指令DOM移除英雄详情HTML。 没有英雄细节元素或绑定担心。...结构指令页面和模板语法页面的内置指令部分阅读有关ngIf和ngFor更多信息。 格式化选中hero 当选择英雄细节显示列表下方时,很难列表识别选定英雄。...您将Hero类移到lib / src下自己文件。 你增加了选择英雄和显示英雄细节能力。 您了解了如何在组件模板中使用核心指令ngIf和ngFor

3K30

AngularDart4.0 指南-体系结构概述 顶

该类通过属性和方法API与视图交互。  例如,这个HeroListComponent有一个heroes属性,返回服务获取英雄列表。...HeroDetailComponent(代码未显示显示关于特定英雄详情,这是用户HeroListComponent提供列表中选择英雄。...这是告诉Angular这个组件构造函数需要HeroService一种方法,这样它就可以获得显示英雄列表。 ? @Component元数据告诉Angular哪里获取为组件指定主要构建块。...示例模板使用两个内置结构指令: lib / src / hero_list_component.html(structural) </...Dart,唯一值为true是布尔值true; 所有其他值是错误。 JavaScript和TypeScript相反,将诸如1和大多数非空对象值视为true。

7.9K30

AngularDart4.0 指南- 显示数据 顶

Angular ngFor指令显示英雄列表每个项目。...Angular使用该变量作为双曲花括号内插上下文。 在这种情况下,ngFor正在显示一个列表,但ngFor可以为任何Iterable对象重复项目。...模板中使用任何Angular指令之前,您需要将它们列组件@Component注解指令参数。...实际应用,大多数绑定是针对更专业化对象。 要将此绑定转换为使用专用对象,请将英雄名称列表转换为Hero对象列表。 为此,你需要一个Hero类。...回到app_component.dart并删除或注释掉英雄列表一个元素。 浏览器应该自动刷新,消息应该消失。 概要 现在你知道如何使用: 用双花括号插入来显示组件属性。 ngFor显示项目列表

5.3K10

Angular DOM 抽象概述

,Angular 为我们开发者提供了 元素, Angular 内部它主要应用在结构指令,比如 *ngIf、*ngFor 等。...动态创建组件流程如下: 获取装载动态组件容器 组件类构造函数,注入 ComponentFactoryResolver 对象 调用 ComponentFactoryResolver 对象 resolveComponentFactory...,配置组件相关属性 (可选) 模块 Metadata 对象 entryComponents 属性添加动态组件 declarations - 用于指定属于该模块指令和管道列表。...对于列表声明每个组件,Angular 将会创建对应一个 ComponentFactory 对象,并将其存储 ComponentFactoryResolver 对象。...此外,获取匹配元素后,我们往往需要需要对返回对象进行相应操作。

3.5K30

Angular快速学习笔记(3) -- 组件与模板

显示数据 Angular 中最典型数据显示方式,就是把 HTML 模板控件绑定到 Angular 组件属性。...="let hero of heroes"> {{ hero.name }} ` 模板里可以自己使用.语法,访问对象属性 使用 ngFor 显示数组属性...它是语法不可或缺一部分 通过 NgIf 进行条件显示 有时,应用需要只特定情况下显示视图或视图一部分,这个时候使用ngif,同vue.js里v-if <p *ngIf="heroes.length...下面介绍其中<em>的</em>两个:管道和安全导航操作符 管道操作符 ( | ) <em>在</em>绑定之前,表达式<em>的</em>结果可能需要一些转换。例如,可能希望把数字<em>显示</em>成金额、强制文本变成大写,或者过滤<em>列表</em>以及进行排序。...ngOnInit() <em>在</em> Angular 第一次<em>显示</em>数据绑定和设置<em>指令</em>/组件<em>的</em>输入属性之后,初始化<em>指令</em>/组件。

15.2K30

Angular快速学习笔记(2) -- 架构

declarations(可声明对象) —— 那些属于本 NgModule 组件、指令、管道 exports(导出) —— 那些能在其它模块组件模板中使用可声明对象子集。...imports(导入) —— 那些导出了本模块组件模板所需其它模块。 providers —— 本模块向全局服务贡献那些服务创建器。 这些服务能被本应用任何部分使用。...指令告诉 Angular 一个列表上进行迭代 {{hero.name}}、(click) 和 [hero]把程序数据绑定到及绑定回 DOM,以响应用户输入。...使用管道: {{interpolated_value | pipe_name}} 需要处理值后面,加上|, 管道还能接收一些参数,来控制它该如何进行转换。...如何使用 Angular ,要把一个类定义为服务,就要用 @Injectable 装饰器来提供元数据,以便让 Angular 可以把它作为依赖注入到组件 使用 @Injectable 装饰器来表明一个组件或其它类

5.2K20

AngularDart4.0 英雄之旅-教程-08HTTP 顶

URL英雄id标识服务器应该更新哪个英雄。 另外,响应数据是单个英雄对象而不是列表。...当应用程序使用模拟英雄列表时,更新直接应用于单个应用程序范围共享列表英雄对象。 现在,您正在从服务器获取数据,如果您希望更改持续存在,则必须将其写回服务器。...:如果需要的话,它会列表删除被删除英雄,并重置选择英雄。...如果用户使用鼠标操作粘贴文本,则会触发更改事件绑定。 正如所料,* ngFor组件英雄属性重复英雄对象。 但正如你很快就会看到,英雄财产现在是一个英雄列表流,而不仅仅是一个英雄名单。...您配置了内存Web API。 您了解了如何使用Streams。

11K30

AngularDart 4.0 高级-管道 顶

当您使用管道时,Angular会选择更简单,更快速变更检测算法。  不使用管道 在下一个示例,组件使用默认积极变化检测策略来监控并更新其hero列表每个英雄显示。...注意如何添加一个英雄: heroes.add(hero); 您将英雄添加到英雄列表。 对列表引用没有改变。 这是同一个列表。 这都是Angular关心。...角度来看,同样列表,没有变化,没有显示更新。 为了解决这个问题,创建一个新英雄列表并将其分配给heroes。 这次Angular检测到列表引用已经改变。...纯净管道 仅当Angular检测到对输入值纯粹更改时才执行纯管道。 AngularDart,纯粹改变仅仅来自对象引用改变(假设所有东西都是Dart对象)。...下一步 管道是封装和共享常见显示值转换好方法。 像样式一样使用它们,将它们放入模板表达式,以丰富视图吸引力和可用性。 API参考中探索Angular内置管道库。

6.3K20

Angular 结构指令模式 - 它们是什么且怎么使用

Angular ,有两种类型指令。属性指令修改 DOM 元素外观或者行为。结构指令添加或者移除 DOM 元素。 结构指令是 Angular 中最强大特性之一,然而它们却频繁被误解。...如果你对学习 结构指令 感兴趣,那么现在我们就来接着阅读,并了解它们是什么,它们有什么用以及如何在项目中使用它们。 你将学到什么 本文中,你将学到关于 Angular 结构指令模式知识点。...这些指令可以添加、移除或者替换元素。结构指令在其名字之前都有 * 符号。 Angular ,有三种标准结构化指令。...要使用结构指令,我们需要在 HTML 模版添加一个带有指令元素。然后根据我们指令设置条件或者表达式添加、删除或者替换元素。 结构指令例子 我们添加些简单 HTML 代码。...*ngFor 指令 我们使用 *ngFor 指令来遍历数组。

3.8K20

AngularDart 4.0 高级-生命周期钩子 顶

OnChanges 看看每次组件输入属性发生变化时,Angular如何用变更对象调用ngOnChanges钩子。 显示如何解释更改对象。...添加一个英雄会产生一个新英雄。 间谍ngOnInit记录该事件。 重置按钮清除英雄列表。 AngularDOM移除所有英雄元素并同时销毁他们间谍指令。...Angular团队负责人Misko Hevery解释了为什么您应该避免使用复杂构造函数逻辑。 不要在组件构造函数获取数据。您不应该担心当在测试下创建或决定显示之前时新组件会尝试联系远程服务器。...ngOnInit是组件获取其初始数据好地方。 教程和HTTP章节显示如何。 还要记住,指令数据绑定输入属性构建之后才会设置。 如果您需要根据这些属性初始化指令,那么这是一个问题。...OnDestroy 将清理逻辑放入ngOnDestroyAngular销毁指令之前必须运行逻辑。 这是通知应用程序另一部分组件将要销毁时间。 这是释放资源地方,不会自动收集垃圾。

6.1K10

angular知识点梳理第二篇-基本语法

文章目录 前文回顾 基本语法 常见指令 NgModel NgFor NgIf Ng-container 管道 前文回顾 前面已经写了关于angular项目的基本介绍和如何创建一个angular项目,这一篇主要梳理一些...angular基本语法,这样有利于后面我们进行梳理别的知识点做一些铺垫 基本语法 常见指令 NgModel NgModel就和vuev-model效果是一致,只是写法会有一些区别,vue是可以直接进行使用...,但是angular我们引入框架一个核心模块FormsModule才可以,该指令就是将数据驱动视图改变!...-- 使用{{}}进行数据获取 --> {{inputData}} 运行效果 NgFor NgFor和我们jsfor循环渲染数据是一致,所以这里是比较容易理解,简单演示一下...官方的话:为没有 DOM 元素指令安排宿主 管道 管道其实就是具有一定功能函数,主要是一些场景是对字符串什么进行简单转化,当然我们也可以自己使用自定义函数进行数据转换,只是angular给我们提供了一些初始化功能函数管道详细列表

2.5K30

Angular 入坑到挖坑 - 组件食用指南

一、Overview angular 入坑记录笔记第二篇,介绍组件相关概念,以及如何在 angular 通过使用组件来完成系统功能实现 对应官方文档地址: 显示数据 模板语法 用户输入 组件之间交互...组件类,通过使用 @Component 装饰器 1 用来将类声明为组件类,并为这个组件类配置一些元数据 2,以决定该组件在运行期间该如何处理、实例化和使用 装饰器存在三个基础配置参数,用来完成组件与视图之间关联...通过使用 $event 作为方法参数会将许多用不到模板信息传递到组件,导致我们仅仅是为了获取数据前提下,却需要对于页面元素十分了解,违背了模板(用户所能看到)与组件(应用如何去处理用户数据)...因此,这里应该使用模板引用变量方式获取数据信息。 模板引用变量是对模板 DOM 元素引用,提供了模块中直接访问元素能力。...="expr">NgIf 结构型指令 当 expr 属性为 true 时,这个元素则会显示页面上,当属性值为 false 时,则不显示该元素 ngIf 指令并不是通过使用 css 样式来隐藏元素

15.8K30
领券