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

在Angular 2+中将元素添加到ngFor后,如何运行一些代码?

在Angular 2+中,可以通过使用ngAfterViewInit生命周期钩子来运行一些代码,以确保元素已经添加到ngFor之后。

ngAfterViewInit是Angular组件生命周期钩子之一,它在组件的视图和子视图初始化完成之后被调用。在这个钩子函数中,可以执行需要在视图初始化完成后运行的代码。

以下是一个示例:

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

@Component({
  selector: 'app-example',
  template: `
    <div *ngFor="let item of items" #itemRef>{{ item }}</div>
  `
})
export class ExampleComponent implements AfterViewInit {
  items = ['Item 1', 'Item 2', 'Item 3'];

  @ViewChildren('itemRef') itemRefs: QueryList<any>;

  ngAfterViewInit() {
    this.itemRefs.forEach((itemRef) => {
      // 在这里运行需要执行的代码
      console.log(itemRef.nativeElement.textContent);
    });
  }
}

在上面的示例中,ngAfterViewInit钩子函数中的代码会在ngFor循环生成的元素添加到视图之后执行。@ViewChildren装饰器用于获取ngFor生成的元素的引用,然后可以通过itemRef.nativeElement来访问元素的原生DOM对象。

这样,你就可以在ngFor之后运行一些代码了。

关于Angular的更多信息和相关产品,你可以访问腾讯云的官方文档和产品介绍页面:

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

相关·内容

AngularDart4.0 指南- 表单 顶

使用模板引用变量HTML元素之间共享信息。 您可以Plunker中运行实例(查看源代码)并从那里下载代码。...理解这个组件只需要前面几页中介绍的Angular概念。 代码导入您刚创建的主Angular库和Hero模型。...模板驱动的表单中,如果已经导入了angular_forms库,则不必为了使用库功能而对标记执行任何操作。 继续看看这是如何工作的。 刷新浏览器。...每个input元素都有一个ngControl指令,Angular表单需要用这个指令表单上注册控件。 如果您现在运行应用程序并更改每个英雄model属性,表单可能会显示如下: ?...如果没有Angular的帮助,你需要做什么才能将按钮的启用/禁用状态连接到表单的有效性? 对你来说,这很简单: (增强的)表单元素上定义一个模板引用变量。 多处的按钮中引用该变量。

17.5K30

AngularDart4.0 指南- 显示数据 顶

现在运行应用程序。 它应该显示标题和英雄的名字: ? 模板内嵌或模板文件? 您可以将组件的模板存储两个地方之一中。...元素中的* ngForAngular“repeater”指令。...它将元素(及其子元素)标记为“repeater模板”: {{ hero }}  不要忘记* ngFor中的主要星号...当组件的英雄列表中有三个以上的项目时,Angular会将该段落添加到DOM,并显示消息。 如果有三个或更少的项目,Angular会忽略该段落,所以不会显示任何消息。...回到app_component.dart并删除或注释掉英雄列表中的一个元素。 浏览器应该自动刷新,消息应该消失。 概要 现在你知道如何使用: 用双花括号插入来显示组件属性。 ngFor显示项目列表。

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

    Angular为所有基本的HTML表单元素提供值访问器,Forms指南展示了如何绑定到它们。...当指令没有合适的宿主元素如何元素进行分组。 如何编写自己的结构指令。 为什么你只能应用一个结构指令到一个元素。 本节介绍常见的结构指令: NgIf:有条件地从DOM中添加或删除元素。...NgFor NgFor是一个迭代指令 - 一种呈现项目列表的方式。 您可以定义一个HTML块来定义应该如何显示单个项目。 您告诉Angular将该块用作呈现列表中每个项目的模板。...大多数情况下,Angular将引用变量的值设置为声明的元素。...对于这些小型转换来说,Angular 管道是一个很好的选择。 管道是简单的函数,它接受一个输入值并返回一个转换的值。

    30K20

    AngularDart 4.0 高级-结构指令 顶

    Angular拥有强大的模板引擎,可以让我们轻松操纵元素的DOM结构。 本指南介绍Angular如何用结构指令操纵DOM,以及如何编写自己的结构指令来完成相同的操作。 尝试一下实例(查看源代码)。...指南描述如何将指令应用于HTML模板中的元素时引用了属性(attribute)名称。 还有其他两种Angular指令,在其他地方被广泛描述:(1)组件和(2)属性指令。...研究NgIf和NgFor的源代码是了解更多信息的好方法。 模板输入变量 模板输入变量是一个变量,其值可以模板的单个实例中引用。 在这个例子中有几个这样的变量:hero,i和odd。...概要 您可以尝试实例中查看本指南的源代码(查看源代码)。 这是lib文件夹下的源代码。...没有合适的宿主元素时使用作为分组元素Angular将星号(*)语法解析为。 NgIf,NgFor和NgSwitch内置指令如何工作。

    16.1K20

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

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

    3.8K20

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

    完成此页面,该应用应该看起来像这个实例(查看源代码)。 必备条件 继续本“英雄之旅”页面之前,请确认您在“英雄编辑器”页面之后具有以下结构。...如果该应用尚未运行,请启动该应用。 当您进行更改时,请通过重新加载浏览器窗口来保持运行。 应用程序重构 添加新功能之前,您可以从应用程序重构中受益。...它表示元素及其子元素构成一个主模板。 ngFor指令遍历组件的英雄列表并为该列表中的每个英雄呈现该模板的一个实例。...模板中,将以下绑定添加到标记中: [class.selected]="hero === selectedHero" 当表达式(hero === selectedHero)为true时,Angular...您了解了如何在组件模板中使用核心指令ngIf和ngFor。 您在CSS文件中定义了样式,并使用它们来设置应用程序的样式。 你的应用应该看起来像这个实例(查看源代码)。

    3K30

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

    文章目录 前文回顾 基本语法 常见指令 NgModel NgFor NgIf Ng-container 管道 前文回顾 前面已经写了关于angular项目的基本介绍和如何创建一个angular项目,这一篇主要梳理一些...,但是angular中我们引入框架的一个核心模块FormsModule才可以,该指令就是将数据驱动视图的改变!...-- 使用{{}}进行数据的获取 --> {{inputData}} 运行效果 NgFor NgFor和我们js中的for循环渲染数据是一致的,所以这里是比较容易理解的,简单的演示一下...运行效果 如果这个tag标签不太理解的,你可以将它完全当作一个容器,当你需要对一段内容控制逻辑的时候但是不知道使用什么元素标签的时候就可以使用这个,html的任何场景下都可以使用!...官方的话:为没有 DOM 元素的指令安排宿主 管道 管道其实就是具有一定功能的函数,主要是一些场景是对字符串什么的进行简单的转化,当然我们也可以自己使用自定义的函数进行数据的转换,只是angular给我们提供了一些初始化的功能函数管道详细列表

    2.5K30

    AngularDart4.0 英雄之旅-教程-07路由 顶

    当你完成这个页面,应用程序应该看起来像这个实例(查看源代码)。 开始阶段 继续英雄之旅之前,请确认您具有以下结构。 ? 如果该应用程序尚未运行,请启动该应用程序。...该应用程序仍然运行并显示英雄。 添加路由 应该在用户点击按钮显示英雄而不是自动显示。 换句话说,用户应该能够导航到英雄列表。...仪表板英雄应显示一排矩形。 为此目的,您已经收到了大约60行CSS,包括一些简单的媒体查询响应式设计。 正如您现在所知,将CSS添加到组件样式元数据将会隐藏组件逻辑。...早些时候,你用元素包围了这些链接: router-link-active 类 Angular路由器将router-link-active类添加到其路由与活动路由相匹配的HTML导航元素。...设计师提供了一些基本样式来应用于整个应用程序的元素。 这些对应于您在安装期间先前安装的全套主样式。

    17.6K30

    AngularDart4.0 英雄之旅-教程-05多组件 顶

    当你完成,应用程序应该看起来像这样。 从哪里开始 开始使用本页面之前,请确认您之前“Tour of Heroes”中拥有以下结构。 如果没有,请返回前面的页面。 ?...如果还没运行,请启动应用,保持应用处于运行状态 创建英雄详情组件 创建文件:hero_detail_component.dart,这个文件将控制新组件HeroDetailComponent Angular...@Component注解提供组件的Angular元数据。 CSS选择器名称hero-detail将与父组件的模板中标识该组件的元素标签相匹配。...这是代表HeroDetailComponent的元素的标签名称。 AppComponent模板的底部附近添加一个元素,英雄细节视图。...您学习了如何使组件接受输入。 您学会了 directives列表中声明应用程序指令。 您学会了将父组件绑定到子组件。 你的应用应该看起来像这个实例(查看源代码)。

    1.8K10

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

    模板是一种HTML形式,告诉Angular如何呈现组件。 模板看起来像普通的HTML,除了一些不同之处。...类似于* ngFor,{{hero.name}},(click),[hero]和的代码使用Angular的模板语法。...注意是如何在原生HTML元素中合适的存放。 自定义组件与原生HTML相同的布局中无缝混合。 元数据 ? 元数据告诉Angular如何处理一个类。...= null"> * ngFor告诉Angular英雄列表中标出每个英雄的一个。 * ngIf仅在选择的英雄存在时才包含HeroDetail组件。...如果请求的服务实例不在容器中,那么将服务返回给Angular之前,注入器将创建一个并将其添加到容器中。 当所有请求的服务已经解析并返回时,Angular可以用这些服务作为参数调用组件的构造函数。

    7.9K30

    angular5面试题_大数据面试题

    关于angular的编译,AOT和JIT的区别 每个Angular应用程序都包含浏览器无法理解的组件和模板。 因此,浏览器内部运行之前,需要先编译所有Angular应用程序。...Angular提供两种编译类型: JIT(Just-in-Time) compilation AOT(Ahead-of-Time) compilation 区别在于,JIT编译中,应用程序在运行浏览器内部进行编译...显而易见,AOT编译好处多多,因而是Angular的默认编译方式。主要优点 由于应用程序是浏览器内部运行之前进行编译的,因此浏览器会加载可执行代码并立即呈现应用程序,从而加快了呈现速度。...开发人员可以构建阶段检测并处理错误,这有助于最大程度地减少错误。 AOT编译器将HTML和模板添加到JS文件中,然后再在浏览器中运行。...NgFor应该伴随trackBy方程使用。否则,每次脏值检测过程中,NgFor会把列表里每一项都执行更新DOM操作。

    4.3K20

    AngularDart4.0 指南- 用户输入 顶

    本页说明如何使用Angular事件绑定语法将这些事件绑定到组件事件处理程序。 运行实例(查看源代码)。 绑定到用户输入事件 您可以使用Angular事件绑定来响应任何DOM事件。...本节介绍如何绑定到输入框的按键事件,以每次按键获取用户的输入。 下面的代码监听一个keyup事件,并将整个事件有效载荷($ event)传递给组件事件处理程序。...当用户按下并释放一个键时,会发生一个键盘事件,而Angular$ event变量中提供一个相应的DOM事件对象,该代码将该代码作为参数传递给组件的onKey()方法。...虽然这简化了一些代码,但使用更具体的类型可以揭示事件对象的属性并防止愚蠢的错误。...第二个语句newHero.value =''新的英雄添加到列表清除输入框。 源代码 这里是在这个页面中讨论的所有代码

    3.5K00
    领券