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

Angular -在数组中推送一些数据后,如何再次触发*ngFor指令?

在Angular中,当我们在数组中推送一些数据后,可以通过改变数组的引用来再次触发ngFor指令。具体的做法是使用数组的slice()方法创建一个新的数组,然后将新数组赋值给原来的数组变量。这样做的好处是Angular会检测到数组的引用发生了变化,从而重新渲染ngFor指令。

以下是一个示例代码:

在组件的类中定义一个数组变量:

代码语言:txt
复制
dataList: any[] = [];

在模板中使用*ngFor指令渲染数组:

代码语言:txt
复制
<div *ngFor="let item of dataList">{{ item }}</div>

当需要在数组中推送新数据时,可以使用以下代码:

代码语言:txt
复制
this.dataList.push(newItem);
this.dataList = this.dataList.slice();

在上述代码中,我们先使用push()方法将新数据推送到数组中,然后通过slice()方法创建一个新的数组,并将其赋值给原来的数组变量dataList。这样就会触发*ngFor指令重新渲染。

需要注意的是,这种方法适用于数组中的数据发生变化的情况,如果是数组本身的引用发生了变化,例如使用了数组的push()、pop()等方法,或者直接将一个新的数组赋值给原来的数组变量,那么*ngFor指令也会重新渲染。

推荐的腾讯云相关产品:腾讯云云服务器(CVM),产品介绍链接地址:https://cloud.tencent.com/product/cvm

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

相关·内容

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

如果名称未能匹配已知指令的元素事件或输出属性,则Angular会报告“未知指令”错误。 $event和事件处理语句 事件绑定Angular为目标事件设置了一个事件处理程序。...Angular你不需要这些指令。 通常,您可以使用功能更强大,表现力更强的Angular绑定系统获得相同的结果。 当你可以写一个简单的绑定时为什么要创建一个指令来处理点击呢?...NgFor NgFor是一个迭代指令 - 一种呈现项目列表的方式。 您可以定义一个HTML块来定义应该如何显示单个项目。 您告诉Angular将该块用作呈现列表每个项目的模板。...*ngFor和trackBy NgFor指令可能表现不佳,特别是大型列表。 对一个项目,删除项目或添加项目的小改动可以触发DOM操作的级联。...接下来的部分将介绍这些操作符的两个:管道和安全导航操作符。 管道操作符(|) 准备使用绑定之前,表达式的结果可能需要进行一些转换。

29.9K20
  • 过渡到 Angular 17 的新控制流语法

    最近将我们当前项目的一些模板迁移到Angular 17的新控制流语法,我觉得分享一些见解能够帮助一些人顺利过渡到这种新语法,为每个控制流结构提供清晰和明确的示例。所以,让我们开始吧。...传统指令Angular 17的控制流语法对比让我们使用一些示例来比较传统指令Angular 17的控制流语法:*ngIf指令 vs @if控制块Before(传统 *ngIf): }请确保查看《可推迟视图》文档,了解有关 @defer 块及其提供的触发条件如何使用的更多信息...例如,某些情况下,您可以使用 @defer 块来延迟加载内容。向后兼容性和性能Angular 17允许您在应用程序同时使用新旧语法。...结论Angular 17引入的新控制流语法处理Angular应用程序的模板和渲染逻辑方面带来了显著的改进。转换到这种新语法,承诺会使我们的代码更易读、易维护和高性能。

    64020

    AngularDart 4.0 高级-结构指令

    该指南在谈论其属性以及指令的功能时引用了指令类。 指南描述如何指令应用于HTML模板的元素时引用了属性(attribute)名称。...您可以分配给ngFor的字符串启用这些功能,这是您在Angular的microsyntax编写的。...您可以在其他结构指令的定义再次使用相同的变量名称。 您通过#(#var)前缀加上变量名称来声明一个模板引用变量。 引用变量是指其附加的元素,组件或指令。 它可以整个模板的任何地方访问。...事实上,呈现视图之前,Angular用注释替换及其内容。 如果没有结构指令,而只是将一些元素包装在,那些元素就会消失。比如短语”Hip! Hip!...没有合适的宿主元素时使用作为分组元素。 Angular将星号(*)语法解析为。 NgIf,NgFor和NgSwitch内置指令如何工作。

    16.1K20

    Angular 显示英雄列表

    本页面,你将扩展《英雄指南》应用,让它显示一个英雄列表, 并允许用户选择一个英雄,查看该英雄的详细信息。 创建模拟(mock)英雄数据 你需要一些英雄数据以供显示。...="let hero of heroes"> *ngFor 是一个 Angular 的复写器(repeater)指令。...你可以用多种方式定义私有样式,或者内联在 @Component.styles 数组,或者 @Component.styleUrls 所指出的样式表文件。...Angular 会把所点击的  上的 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式定义的那个。...这个应用看起来又再次工作正常显示了。 英雄显示列表,当你单击英雄的名字的时候,有关你单击英雄的详细信息就显示页面的底部了。

    4.4K70

    Angular 显示英雄列表

    本页面,你将扩展《英雄指南》应用,让它显示一个英雄列表, 并允许用户选择一个英雄,查看该英雄的详细信息。 创建模拟(mock)英雄数据 你需要一些英雄数据以供显示。...="let hero of heroes"> *ngFor 是一个 Angular 的复写器(repeater)指令。...你可以用多种方式定义私有样式,或者内联在 @Component.styles 数组,或者 @Component.styleUrls 所指出的样式表文件。...Angular 会把所点击的  上的 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式定义的那个。...这个应用看起来又再次工作正常显示了。 英雄显示列表,当你单击英雄的名字的时候,有关你单击英雄的详细信息就显示页面的底部了。

    4K30

    Angular 2 + 折腾记 :(2)初步认识angular2,不一样的开发模式

    ,从根节点无限发散 import { NgModule } from '@angular/core'; // 表单模块,比如你要在组件内用到一些表单元素或者数据绑定,不然会报错..., |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道的参数,后续文档我写一个如何自定义管道的文章 []="":绑定组件内的值[单向,数据流向视图],指令,原生html控件的自身属性[value...,src,class,style]等,双引号内支持条件表达式[不完全等同于js条件表达式]或者方法亦或者变量, (click)="": 事件绑定[视图触发改变数据源],同上,支持表达式和方法。。...,用来动态判断增加多个样式 [class.a]或者[style.font-size]:单一操作类或者某个行内样式 数据遍历(*ngFor) *ngFor="let i of item; let index...哦,还少说了服务这块,看着安排,这些说完之后就直接开搞一些小玩意,比如自定义管道,上传组件,自定义指令这些。。。发现文章有错误的,或者有更好讲解的,请留言指出,我会及时修正,谢谢!

    6.2K20

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

    Angular ,有两种类型的指令。属性指令修改 DOM 元素的外观或者行为。结构指令添加或者移除 DOM 元素。 结构指令Angular 中最强大的特性之一,然而它们却频繁被误解。...如果你对学习 结构指令 感兴趣,那么现在我们就来接着阅读,并了解它们是什么,它们有什么用以及如何在项目中使用它们。 你将学到什么 本文中,你将学到关于 Angular 结构指令模式的知识点。...结构指令在其名字之前都有 * 符号。 Angular ,有三种标准的结构化指令。...*ngIf - 根据表达式返回的布尔值,有条件地包含一个模版(即条件渲染模版) *ngFor - 遍历数组 *ngSwitch - 渲染每个匹配的是图 下面是一个结构化指令的例子。...指令 我们使用 *ngFor 指令来遍历数组

    3.8K20

    Angular 2.x折腾记 :(2)初步认识angular2,不一样的开发模式

    :组件逻辑处理 // 导入装饰器:装饰器可以理解为一些函数的封装,使其书写起来非常简洁明了 import { Component } from '@angular/core'; @Component...ng2的开发模式就是类似一个树,从根节点无限发散 import { NgModule } from '@angular/core'; // 表单模块,比如你要在组件内用到一些表单元素或者数据绑定..., |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道的参数,后续文档我写一个如何自定义管道的文章 []="":绑定组件内的值[单向,数据流向视图],指令,原生html控件的自身属性[value...,src,class,style]等,双引号内支持条件表达式[不完全等同于js条件表达式]或者方法亦或者变量, (click)="": 事件绑定[视图触发改变数据源],同上,支持表达式和方,特殊之处后面解释...[class.a]或者[style.font-size]:单一操作类或者某个行内样式 数据遍历(*ngFor) *ngFor="let i of item; let index = index": 可以用这个来遍历数组对象

    10110

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

    一、Overview angular 入坑记录的笔记第二篇,介绍组件的相关概念,以及如何angular 通过使用组件来完成系统功能的实现 对应官方文档地址: 显示数据 模板语法 用户输入 组件之间的交互...组件类,通过使用 @Component 装饰器 1 用来将类声明为组件类,并为这个组件类配置一些数据 2,以决定该组件在运行期间该如何处理、实例化和使用 装饰器存在三个基础的配置参数,用来完成组件与视图之间的关联...子组件引入服务,从而同步获取到父组件修改的服务数据信息 import { Component, OnInit } from '@angular/core'; // 引入服务 import...五、组件的生命周期钩子函数 当 angular 创建、更新、销毁组件时都会触发组件的生命周期钩子函数,通过组件实现这些生命周期函数,从而介入到这些关键时刻 钩子函数 触发时机 ngOnChanges...组件加载过程,会按照上面列出的钩子函数顺序,组件的构造函数执行之后依次执行,页面加载过程中会涉及绑定数据的操作,因此会再次出发 ngDoCheck、ngAfterContentChecked

    15.8K30

    Angular2 之 结构型指令几个概念

    它仍然附加子啊它所属于的DOM元素上,它仍然监听事件。angular会继续检查哪些能影响数据绑定的变更。组件原本要做的哪些事情仍然进行!它还是占用着那么多的资源。...弊 如果我们很快再次使用这个组件的时候,重建组件的代价是非常大的。 当ngIf重新变成true的时候,angular会重新创建该组件及其子树。angular会重新运行每个组件的初始化逻辑。...Angular应用之外,标签的默认CSS属性display是none 。 它的内容存在于一个隐藏的文档片段。...,Angular的控制下,DOM的效果是不同的。 ?...要么显示的包含在Template标签,要么隐式的使用*这种语法糖去包装在Template标签。它简化了ngIf和ngFor —— 无论是写还是读。

    3K20

    Angular教程】-组件初识|8月更文挑战

    组件相关的其他文件暂时先放一放,Vue开发的时候我们创建好的组件总是要挂载才能使用的,那angular需要挂载吗?...' + event.type); } 组件的html模板添加一个按钮来触发print函数 触发一下 双向绑定 双向绑定的构成...@Inout()装饰器来接收数据,通过@Output装饰器来派发数据来达到双向数据流通 组件ts代码(代码来自angular中文网): export class SizerComponent {...fontSizePx属性被传入到sizer组件 操作sizer组件后又将size更新到了app的fontSizePx属性,页面随之更新 结构型指令 NgIf(内置): 给组件ts添加属性: public..."> value: {{value}} 注意需要在module中导入FormsModule,要不然功能无法实现 此时页面恢复正常,通过输入框更新内容,页面绑定的数据同时更新 管道 angular

    1.9K20

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

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

    2.5K30

    AngularDart4.0 指南- 表单 顶

    模板驱动的形式 您可以通过使用本页描述的特定于表单的指令和技术Angular模板语法编写模板来构建表单。 您也可以使用响应式(或模型驱动)方法来构建表单。...模板驱动的表单,如果已经导入了angular_forms库,则不必为了使用库功能而对标记执行任何操作。 继续看看这是如何工作的。 刷新浏览器。...您将在表单添加一个select,并使用ngFor(先前“显示数据”页面中看到的一种技术)将选项绑定到powers列表。...用ngSubmit提交表单 用户应该能够填写表单提交这个表单。表单底部的Submit按钮本身不做任何事情,但是由于它的类型(type =“submit”),它会触发一个表单提交。...概要 Angular表单为数据修改,验证等提供支持。 在此页面,您学习了如何使用以下功能: 一个HTML表单模板和一个带有@Component注解的表单组件类。

    17.5K30

    Angular学习资料大全和常用语法汇总(让后端程序员轻松上手)

    ngModel 指令,必须先导入 FormsModule 并将其添加到 NgModule 的 imports 列表。...ngFor循环的使用: 属性index、count、first、last、even、odd index属性提供当前对象的索引 count提供当前数据集的长度,类似于datasource.length...ng-if判断使用: //angular没有else只能都通过ng-if来判断 准备 进行...ng-bind 绑定 HTML 元素到应用程序数据 ng-bind-html 绑定 HTML 元素的 innerHTML 到应用程序数据,并移除 HTML 字符串危险字符 ng-bind-template...) ng-model 绑定 HTML 控制器的值到应用数据 ng-model-options 规定如何更新模型 ng-mousedown 规定按下鼠标按键时的行为 ng-mouseenter 规定鼠标指针穿过元素时的行为

    5.3K41

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

    模板是一种HTML形式,告诉Angular如何呈现组件。 模板看起来像普通的HTML,除了一些不同之处。...注意是如何在原生HTML元素合适的存放。 自定义组件与原生HTML相同的布局无缝混合。 元数据 ? 元数据告诉Angular如何处理一个类。...建筑外包是你必须添加元数据到你的代码,以便Angular知道该怎么做。 数据绑定 如果没有框架,您将负责将数据推送到HTML控件,并将用户响应转化为操作和值更新。...属性指令会改变现有元素的外观或行为。 模板,它们看起来像常规的HTML属性,因此也就是名称。 实现双向数据绑定的ngModel指令是一个属性指令的例子。...无论应用程序组件树的级别如何,您都可以引导期间或组件中注册提供程序。

    7.9K30
    领券