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

ngFor中ngIf的Angular 2显示问题

ngFor和ngIf是Angular框架中常用的指令,用于在模板中进行循环和条件判断。

ngFor是Angular中的循环指令,用于遍历一个集合并生成相应的HTML元素。它的语法如下:

代码语言:html
复制
<element *ngFor="let item of items; let i = index">
  {{ item }}
</element>

其中,items是一个数组或可迭代对象,item是当前遍历的元素,i是当前元素的索引。通过ngFor指令,我们可以根据集合的长度动态生成多个元素。

ngIf是Angular中的条件指令,用于根据条件判断是否显示某个HTML元素。它的语法如下:

代码语言:html
复制
<element *ngIf="condition">
  Content to show when condition is true.
</element>

其中,condition是一个布尔表达式,当其为true时,元素会被显示;当其为false时,元素会被隐藏或移除。

在使用ngFor和ngIf时,需要注意它们的顺序。由于ngFor会生成多个元素,如果将ngIf放在ngFor的父元素上,会导致条件判断应用于整个ngFor循环,而不是单个元素。为了在ngFor循环内部应用条件判断,需要将ngIf放在ngFor生成的元素上。

下面是一个示例,展示了如何在ngFor中使用ngIf:

代码语言:html
复制
<ng-container *ngFor="let item of items">
  <div *ngIf="item.visible">
    {{ item.name }}
  </div>
</ng-container>

在上述示例中,ngFor遍历了一个名为items的数组,根据数组中每个元素的visible属性决定是否显示对应的div元素。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):提供可扩展的计算容量,满足不同规模业务的需求。产品介绍链接
  • 云数据库 MySQL 版(CDB):高可用、可扩展的关系型数据库服务。产品介绍链接
  • 腾讯云对象存储(COS):安全、稳定、高扩展性的云端存储服务。产品介绍链接
  • 腾讯云人工智能:提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。产品介绍链接
  • 腾讯云物联网平台(IoT Hub):连接、管理和控制物联网设备的云服务。产品介绍链接
  • 腾讯云移动开发平台(MTP):提供一站式移动应用开发、测试、分发和运营的云服务。产品介绍链接

以上是对ngFor中ngIf的Angular 2显示问题的完善且全面的答案。

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

相关·内容

AngularDart 4.0 高级-结构指令 顶

三种常见内置结构指令 - NgIfNgFor和NgSwitch ... - 在模板语法指南中进行了描述,并在整个Angular文档示例中进行了介绍。...NgFor指令具有比本指南中显示NgIf更多功能,包括必需和可选。 至少NgFor需要一个循环变量(let hero)和一个列表(heroes)。...您可以在分配给ngFor字符串启用这些功能,这是您在Angularmicrosyntax编写。...浏览器不会在显示。 模板来解决 Angular 是一个分组元素,不会干扰样式或布局,因为Angular不会将其放入DOM。...满足Angular模板类似需求。 编写一个结构指令 在本节,您将编写一个与NgIf相反UnlessDirective结构指令。 NgIf在条件为true时显示模板内容。

16K20

Angular2 之 结构型指令几个概念

结构型指令 结构型指令通过添加和删除 DOM 元素来改变DOM布局。 我们经常看到内置结构型指令有:ngIf、ngSwitch、ngFor。 下面我们着重介绍ngIf。... 移除元素组件 利 把ngIf设置为false,将会影响到组件资源消耗。angular会从DOM移除该元素,停止相关组件变更检测,把它从DOM事件移除,并且销毁组件。... 这时候显示内容是'Hip! Hooray!',在Angular控制下,DOM效果是不同。 ?...template-in-out-of-a2.png 显然,Angular把标签及其内容替换成了一个空白 标签。 这只是它默认行为。...要么显示包含在Template标签,要么隐式使用*这种语法糖去包装在Template标签。它简化了ngIfngFor —— 无论是写还是读。

3K20

Angular 显示英雄列表

Angular 会把所点击  上 hero 对象传给它,这个 hero 也就是前面在 *ngFor 表达式定义那个。...出现了什么问题?...英雄们显示在列表,并且所点英雄详情也显示在了页面的下方。 修复 - 使用 *ngIf 来隐藏空白细节 该组件应该只有当 selectedHero 存在时才显示所选英雄详情。...把显示英雄详情 HTML 包裹在一个  。 并且为这个 div 添加 Angular  *ngIf 指令,把它值设置为 selectedHero。...用户可以选择一个英雄,并查看该英雄详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 样式类。

4.4K70

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

文章目录 前文回顾 基本语法 常见指令 NgModel NgFor NgIf Ng-container 管道 前文回顾 前面已经写了关于angular项目的基本介绍和如何创建一个angular项目,这一篇主要梳理一些...angular基本语法,这样有利于后面我们进行梳理别的知识点做一些铺垫 基本语法 常见指令 NgModel NgModel就和vuev-model效果是一致,只是写法会有一些区别,vue是可以直接进行使用...-- 使用{{}}进行数据获取 --> {{inputData}} 运行效果 NgFor NgFor和我们jsfor循环渲染数据是一致,所以这里是比较容易理解,简单演示一下...{{item.id}} 运行效果 NgIf NgIf指令是可以控制页面元素显示与消失,这里和隐藏要区别开,他效果和cssdisplay:none效果是一致,和visibility...,因为他是一个不被渲染tag,所以使用时候是没有什么问题,举个例子!

2.5K30

Angular 显示英雄列表

Angular 会把所点击  上 hero 对象传给它,这个 hero 也就是前面在 *ngFor 表达式定义那个。...出现了什么问题?...英雄们显示在列表,并且所点英雄详情也显示在了页面的下方。 修复 - 使用 *ngIf 来隐藏空白细节 该组件应该只有当 selectedHero 存在时才显示所选英雄详情。...把显示英雄详情 HTML 包裹在一个  。 并且为这个 div 添加 Angular  *ngIf 指令,把它值设置为 selectedHero。...用户可以选择一个英雄,并查看该英雄详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 样式类。

4K30

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

Angular ,有两种类型指令。属性指令修改 DOM 元素外观或者行为。结构指令添加或者移除 DOM 元素。 结构指令是 Angular 中最强大特性之一,然而它们却频繁被误解。...在 Angular ,有三种标准结构化指令。...*ngIf - 根据表达式返回布尔值,有条件地包含一个模版(即条件渲染模版) *ngFor - 遍历数组 *ngSwitch - 渲染每个匹配是图 下面是一个结构化指令例子。...> 怎么使用 *ngIf 指令 我们根据条件来使用 *ngIf 来确定展示或者移除一个元素。...ngIf 跟 if-else 很类似。 当表达式是 false 时候,*ngIf 指令移除 HTML 元素。当为 true 时候,元素副本会添加到 DOM

3.8K20

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

NgFor:为列表每个项目重复一个模板。 NgSwitch:只显示多个可能元素一个。 NgIf  您可以通过向该元素应用NgIf指令(称为宿主元素)来添加或移除DOM元素。...警惕隐藏大型组件树; NgIf可能是更安全选择。 警惕null ngIf指令通常用于防止null。 显示/隐藏是无用。 如果嵌套表达式试图访问null属性,Angular会抛出一个错误。...您可以定义一个HTML块来定义应该如何显示单个项目。 您告诉Angular将该块用作呈现列表每个项目的模板。...它可以根据切换条件从几个可能元素显示一个元素。 Angular只把选中元素放入DOM。...在等待数据时候,视图应该没有怨言地呈现,而null属性路径应该像title属性一样显示为空白。 不幸是,当currentHero为空时,应用程序崩溃。 你可以用*ngIf来解决这个问题。 <!

29.9K20

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

> {{hero.name}} 要在模板中使用Angular指令,需要在组件@Component注解指令参数列出。...显示英雄模板应该是这样:lib/app_component.html (styled heroes) My Heroes <li *ngFor...刷新浏览器,该应用程序不再失败,名称列表再次显示在浏览器。 当没有选定英雄时,ngIf指令从DOM移除英雄详情HTML。 没有英雄细节元素或绑定担心。...在结构指令页面和模板语法页面的内置指令部分阅读有关ngIfngFor更多信息。 格式化选中hero 当选择英雄细节显示在列表下方时,很难在列表识别选定英雄。...您将Hero类移到lib / src下自己文件。 你增加了选择英雄和显示英雄细节能力。 您了解了如何在组件模板中使用核心指令ngIfngFor

3K30

Angular核心概念:数据绑定

Angular核心概念:数据绑定 博客首页:蔚说博客 欢迎关注点赞收藏⭐️留言 作者水平很有限,如果发现错误,求告知,多谢! 有问题可私信交流!!!...(达内教育学习笔记)仅供学习交流 Angular数据绑定 Angular核心概念:数据绑定(1)HTML绑定:{{NG表达式}}(2)属性绑定(3)指令绑定(4)事件绑定()(5)双向数据绑定指令... … 举例: html文件 <div *ngIf="isPayingUser...= false; age = 32; 效果图演示: 特殊选择绑定 Angular指令分三类: 1.组件指令:NGComponent继承自Directive 2.结构型指令:会影响...DOM树结构,必须使用开头,如ngFor,*ngIf 3.属性型指令:不会影响DOM树结构,只是影响元素外观或行为,必须用[]括起来,如 :[ngClass],[ngStyle] <container-element

3.5K10

【Appetite】ionic3实录(七)次页实现及分析解决问题【下】

问题二:为什么用[hidden],不用*ngIf或者ngSwitch? 因为前者只是隐藏,而后两者是会移除。...也就是说,前者只会初始化一次,而后两者每次显示都需要重新初始化,进一步说,若使用后两者方式,对于这里用到swiper,它不是一个angular封装起来组件,不会自动初始化,我们每次显示它时都需要显式调用一下...这并不是说都不要用*ngIf,因为当页面元素太多时会容易导致界面卡顿,所以没用多余元素应该移除,此时就用它。一句话说就是根据情况合理选择显示控制方法。...ts把initSwiper方法相关内容移除: import { Component, ViewChild, ElementRef, ChangeDetectorRef } from '@angular...> 这样当新数据有值且长度大于0时,才会显示ion-slides组件,进而内部进行初始化,此时运行看效果如下,只是此时有个比较突兀2图向3图切换效果,有兴趣可以试试: ?

1.4K20

过渡到 Angular 17 新控制流语法

传统指令与Angular 17控制流语法对比让我们使用一些示例来比较传统指令和Angular 17控制流语法:*ngIf指令 vs @if控制块Before(传统 *ngIf):*ngIf指令和async管道 vs @if和asyncBefore(带有 *ngIf async 管道):...} *ngFor指令 vs @for控制块Before(传统 *ngFor): {{ item }}</ul...向后兼容性和性能Angular 17允许您在应用程序同时使用新旧语法。就性能而言,值得一提是,Angular团队观察到使用新语法时达到了高达90%速度性能改进。...结论Angular 17引入新控制流语法在处理Angular应用程序模板和渲染逻辑方面带来了显著改进。转换到这种新语法,承诺会使我们代码更易读、易维护和高性能。

54020

理解Angular*ngIf指令中加问号和不加问号区别

Angular开发,我们经常使用ngIf指令来根据条件动态渲染或移除元素。然而,在一些情况下,我们可能需要处理一些可能为空对象属性。这时,就需要了解在ngIf指令中使用加问号和不加问号区别。...值,那么渲染元素将会显示如下内容:销售区域: 区域A这是因为obj1存在且depotSaleAreaName字段存在,满足了*ngIf指令条件,所以元素被渲染出来。...然而,当我们使用obj2作为pickModel值时,情况就会有所不同。...因为obj2为空对象,即使没有depotSaleAreaName字段,加上问号条件操作符也能够保证整个表达式值为false,从而跳过元素渲染。...总结一下,加问号和不加问号在Angular中使用*ngIf指令区别主要在于处理对象属性是否为空时表现。我们可以根据具体业务需求来选择合适方式,确保代码可靠性和稳定性。

25900
领券