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

如何在angular 7中使用ngFor在单击关闭按钮时单独隐藏一个div

在Angular 7中,可以使用ngFor指令来循环渲染一组元素,并通过点击关闭按钮来单独隐藏一个div。下面是一个完整的示例:

首先,在组件的HTML模板中,使用ngFor指令来循环渲染一组div,并为每个div绑定一个唯一的标识符:

代码语言:txt
复制
<div *ngFor="let item of items; let i = index">
  <div [hidden]="hiddenItems[i]">
    <!-- div的内容 -->
    <button (click)="hideItem(i)">关闭</button>
  </div>
</div>

接下来,在组件的Typescript代码中,定义items数组和hiddenItems数组,并实现hideItem方法来隐藏对应的div:

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

@Component({
  selector: 'app-example',
  templateUrl: './example.component.html',
  styleUrls: ['./example.component.css']
})
export class ExampleComponent {
  items = [1, 2, 3, 4, 5]; // 示例数据,可以是任意类型的数组
  hiddenItems = []; // 用于记录每个div的隐藏状态

  hideItem(index: number) {
    this.hiddenItems[index] = true;
  }
}

在上述代码中,items数组是示例数据,可以根据实际需求进行修改。hiddenItems数组用于记录每个div的隐藏状态,初始时为空数组。hideItem方法接收一个索引参数,将对应的hiddenItems元素设置为true,从而隐藏对应的div。

这样,当点击某个div中的关闭按钮时,对应的div会被隐藏起来。

请注意,上述示例中没有提及任何特定的云计算品牌商或产品。如果需要使用腾讯云相关产品来支持Angular 7应用程序的部署和运行,可以参考腾讯云官方文档或咨询腾讯云的技术支持团队。

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

相关·内容

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

以下示例中,目标是按钮单击事件。...单击按钮可在最小/最大值限制内增加或减小size,然后用调整的大小触发(发出)sizeChange事件。...当用户单击按钮Angular将$event值分配给AppComponent.fontSizePx。 显然,与单独的属性和事件绑定相比,双向绑定语法相当方便。...Angular中你不需要这些指令。 通常,您可以使用功能更强大,表现力更强的Angular绑定系统获得相同的结果。 当你可以写一个简单的绑定时为什么要创建一个指令来处理点击呢?...'none' : 'block'">Hide with style 隐藏一个元素与用NgIf去除一个元素是完全不同的。 当你隐藏一个元素,该元素及其所有的后代仍然保留在DOM中。

29.9K20

AngularDart4.0 指南- 表单 顶

你会看到一个样式化的表单! 使用* ngFor添加powers 英雄必须从一个固定的机构批准的权力列表中选择一个超级大国。 您在内部维护该列表(HeroFormComponent中)。...您将在表单中添加一个select,并使用ngFor(先前“显示数据”页面中看到的一种技术)将选项绑定到powers列表。...如果您忽略原始状态,则只有该值有效才会隐藏该消息。 如果您使用新(空白)英雄或无效英雄到达此组件,则在您执行任何操作之前,您将立即看到错误消息。...当控件是“原始的”隐藏消息实现了这个目标。 当您向表单添加一个“清除”按钮,您会看到此选项的重要性。 英雄Alter Ego是可选的,所以你可以不用关那个。 英雄power选择是必需的。...该视图包含一个编辑按钮,其单击事件绑定将清除提交的标志。 当您单击编辑按钮,该表消失,并且可编辑的表单重新出现。 概要 Angular表单为数据修改,验证等提供支持。

17.4K30

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

-- each hero goes here --> 下一步你将添加英雄名字 使用ngFor指令罗列英雄 目标是将组件中的英雄列表绑定到模板,迭代它们,并单独显示它们。...添加一个onSelect()方法,将selectedHero属性设置为用户单击的英雄。...)]="selectedHero.name" placeholder="name"> 使用ngIf指令隐藏空的对象 当应用程序加载,selectedHero为null。...当表达式为falseAngular删除选定的类。 ===运算符测试给定的对象是否相同。 模板语法指南中阅读有关[class]绑定的更多信息。  ...您了解了如何在组件模板中使用核心指令ngIf和ngFor。 您在CSS文件中定义了样式,并使用它们来设置应用程序的样式。 你的应用应该看起来像这个实例(查看源代码)。

3K30

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

RouterLink指令告诉路由在用户点击链接的位置。 您使用链接参数列表定义了一个路由指令, 这个列表我们的小样本中只有一个元素,引用的路由名称。...要在另一个包中使用资源,请使用完整的包引用,“package:some_other_package / dashboard_component.html”。...要在其他地方导航,用户可以单击AppComponent中的两个链接之一,或单击浏览器的后退按钮。...当用户从列表中选择一个英雄,他们不会进入详细页面。 相反,他们会在此页面上看到一个迷你细节,并且必须单击一个按钮才能导航到完整的详细信息页面。...警告模板中使用Angular管道之前,需要将其列组件的@Component注解的pipes参数中。 您可以单独添加管道,或者为了方便起见,可以使用COMMON_PIPES组。

17.5K30

Angular 显示英雄列表

主从结构 当用户主列表中点击一个英雄,该组件应该在页面底部显示所选英雄的详情。 本节,你将监听英雄条目的点击事件,并更新英雄的详情。...Angular 会把所点击的  上的 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式中定义的那个。...修复 - 使用 *ngIf 来隐藏空白的细节 该组件应该只有当 selectedHero 存在才显示所选英雄的详情。 把显示英雄详情的 HTML 包裹在一个  中。...点击一个英雄,它的详情就出现了。 这个应用看起来又再次工作正常显示了。 英雄显示列表中,当你单击英雄的名字的时候,有关你单击英雄的详细信息就显示页面的底部了。...用户可以选择一个英雄,并查看该英雄的详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 的样式类。

4.4K70

Angular 显示英雄列表

主从结构 当用户主列表中点击一个英雄,该组件应该在页面底部显示所选英雄的详情。 本节,你将监听英雄条目的点击事件,并更新英雄的详情。...Angular 会把所点击的  上的 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式中定义的那个。...修复 - 使用 *ngIf 来隐藏空白的细节 该组件应该只有当 selectedHero 存在才显示所选英雄的详情。 把显示英雄详情的 HTML 包裹在一个  中。...点击一个英雄,它的详情就出现了。 这个应用看起来又再次工作正常显示了。 英雄显示列表中,当你单击英雄的名字的时候,有关你单击英雄的详细信息就显示页面的底部了。...用户可以选择一个英雄,并查看该英雄的详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 的样式类。

4K30

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

对于模拟来说这很好,但是当你只需要一个真正的服务器给所有英雄,这是浪费的。 大多数web API支持以api / hero /:id(api / hero / 11)的形式获取请求。...当你输入时,英雄的名字视图标题中被更新。 但是,如果您单击后退按钮,更改将丢失。 更新之前没有丢失。 什么改变了?...添加保存英雄详情的能力 英雄细节模板的末尾,添加一个保存按钮,其中包含一个点击事件绑定,调用一个名为save()的新组件方法。...刷新浏览器,更改英雄名称,保存更改,然后单击浏览器“后退”按钮。 现在应该继续进行更改。 添加加入英雄的能力 要添加英雄,应用程序需要英雄的名字。 您可以使用与添加按钮配对的输入元素。...如果用户使用鼠标操作粘贴文本,则会触发更改事件绑定。 正如所料,* ngFor从组件的英雄属性重复英雄对象。 但正如你很快就会看到的,英雄的财产现在是一个英雄列表的流,而不仅仅是一个英雄名单。

11K30

AngularDart 4.0 高级-结构指令 顶

对于一个简单的段落来说,隐藏和删除之间的区别并不重要。 当宿主元素连接到资源密集型组件,这很重要。 即使隐藏,这种组件的行为也会继续。 该组件保持连接到其DOM元素。 它一直倾听事件。...所以隐藏和展示有时候是正确的。 但是如果没有一个令人信服的理由让他们保持身临其境,你应该首先去除用户看不到的DOM元素,并用像NgIf这样的结构指令来恢复未使用的资源。...当你编写自己的结构指令,可以使用这些微观语法机制。 研究NgIf和NgFor的源代码是了解更多信息的好方法。 模板输入变量 模板输入变量是一个变量,其值可以模板的单个实例中引用。...满足Angular模板中的类似需求。 编写一个结构指令 本节中,您将编写一个与NgIf相反的UnlessDirective结构指令。 NgIf条件为true显示模板内容。...没有合适的宿主元素使用作为分组元素。 Angular将星号(*)语法解析为。 NgIf,NgFor和NgSwitch内置指令如何工作。

16K20

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

{{title}} 9、Angular使用[InnerHtml]中正常显示富文本内容: <div class...10、Angular ngFor循环的使用: 属性index、count、first、last、even、odd index属性提供当前对象的索引 count提供当前数据集的长度,类似于datasource.length...类似 ng-class,但只偶数行起作用 ng-class-odd 类似 ng-class,但只奇数行起作用 ng-click 定义元素被点击的行为 ng-cloak 应用正要加载防止其闪烁...false 移除 HTML 元素 ng-include 应用中包含 HTML 文件 ng-init 定义应用的初始化值 ng-jq 定义应用必须使用到的库,:jQuery ng-keydown 规定按下按键事件的行为...规定鼠标指针位于元素上方的行为 ng-mouseup 规定当在元素上松开鼠标按钮的行为 ng-non-bindable 规定元素或子元素不能绑定数据 ng-open 指定元素的 open 属性 ng-options

5.3K41

ng-content 中隐藏的内容

如果你尝试 Angular 中编写可重复使用的组件,则可能会接触到内容投射的概念。然后你发现了 ,并找到了一些关于它的文章,进而实现了所需的功能。...接下来我们来通过一个简单的示例,一步步介绍 所涉及的内容。 简单示例 本文中我们使用一个示例,来演示不同的方式实现内容投影。...> 答案是我们最后一个 中得到一个计数器,另一个是空的!...我们尝试解释为什么之前,让我们再来验证一个问题,即在 ng-content 指令的外层容器中添加 ngIf 指令: import { Component } from '@angular/core';...) template: TemplateRef; } 现在我们的 counter 组件,每当我们隐藏并重新显示都正确递增!

2.7K30

AngularDart 4.0 高级-HTTP 客户端 顶

它从服务中接收heroes并且列表中展示它们.用户可以添加一个新的Hero并且保存到服务端. 下面是应用程序的UI: ? 此demo有一个单独的组件, HeroListComponent....= null">{{errorMessage}} 模板的ngFor指令显示heroes列表.列表下面是输入框和Add Hero按钮,允许用户添加新的英雄....一个模板引用变量, newHeroName, 赋予(click)事件绑定存取输入框的值. 当用户单击按钮, 单击处理程序传递输入值到addHero()方法. 单击处理程序清空输入框....当组件的构造器很简单,组件更容易测试和调试,而所有真正的工作(调用远程服务器)都是由单独的方法处理的。...并非所有的服务器都返回一个带有数据属性的对象 不要返回响应对象 尽管getHeroes()有可能返回HTTP响应,但这不是一个好习惯。 数据服务的重点在于隐藏消费者的服务器交互细节。

9.6K10

AngularDart 4.0 高级-管道 顶

如果管道接受多个参数,请使用冒号分隔值(slice:1:5) 修改生日模板以给日期管道一个格式参数。...toggle; } } 当您点击该按钮,显示的日期“04/15/1988”和“Friday, April 15, 1988”之间交替。 ?...当您使用管道Angular会选择更简单,更快速的变更检测算法。  不使用管道 在下一个示例中,组件使用默认的积极变化检测策略来监控并更新其hero列表中每个英雄的显示。...当你不能,你可以使用不纯的管道。 或者你可能根本不使用管道。 用组件的属性来追求管道的目的可能会更好,这点在本页稍后会讨论。 不纯的管道 Angular每个组件更改检测周期执行不纯管道。...--> 您通过文本字符串来识别排序字段,期望管道通过索引引用属性值(hero

6.3K20

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

文章目录 前文回顾 基本语法 常见指令 NgModel NgFor NgIf Ng-container 管道 前文回顾 前面已经写了关于angular项目的基本介绍和如何创建一个angular项目,这一篇主要梳理一些...,但是angular中我们引入框架的一个核心模块FormsModule才可以,该指令就是将数据驱动视图的改变!...:hidden是要区别开的,当if判断为false的时候,页面上是整个元素都消失了,而不是仅仅隐藏了css样式 需要使用数据绑定的组件进行数据的处理 import { Component, OnInit...*ngIf="isShow">我是一个div块 运行效果 true显示: false不显示: Ng-container ng-container 这里有必要介绍一下,这个类比的话就喝...运行效果 如果这个tag标签不太理解的,你可以将它完全当作一个容器,当你需要对一段内容控制逻辑的时候但是不知道使用什么元素标签的时候就可以使用这个,html的任何场景下都可以使用

2.5K30

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

前提: 准备一个空的angular项目(ng new angular-course) 与Angular组件的第一次会面 **通过创建组件命令: ****ng g c components/HelloWorld...组件样式定义,创建项目可以预先选择css预编译器 hello-world.component.ts 组件核心类 hello-world.component.spec.ts 组单元测试使用 我们先打开...组件相关的其他文件暂时先放一放,Vue开发的时候我们创建好的组件总是要挂载后才能使用的,那angular需要挂载吗?...' + event.type); } 组件的html模板中添加一个按钮来触发print函数 触发一下 双向绑定 双向绑定的构成...>未知 特点: 一个标签一个结构型指令 *标记 属性型指令 NgClass 组件的样式文件中添加: .class1{ background-color: chocolate

1.9K20

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

使用插值表达式,就把属性名包裹在双花括号里放进视图模板, {{myHero}}。...angular提供两种地方存放组件模板 你可以使用 template 属性把它定义为内联的, 或者把模板定义一个独立的 HTML 文件中, 再通过 @Component 装饰器中的 templateUrl...="let hero of heroes"> {{ hero.name }} ` 模板里可以自己使用.语法,访问对象属性 使用 ngFor 显示数组属性... Angular 销毁指令/组件之前调用 OnInit钩子 使用 ngOnInit() 有两个原因: 构造函数之后马上执行复杂的初始化逻辑 Angular 设置完输入属性之后,对该组件进行准备...this.agreed++ : this.disagreed++; } } 父组件和子组件通过服务来通讯 之前讲服务就提过,同一个module下的组件间,可以通过服务进行通讯。

15.2K30
领券