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

*ngFor循环无法在Angular 9中显示json数据

基础概念

*ngFor 是 Angular 框架中的一个内置指令,用于在模板中循环遍历数组或对象,并为每个元素生成相应的 HTML 元素。它通常与 Angular 的组件和模板语法一起使用。

相关优势

  • 简洁性*ngFor 提供了一种简洁的方式来遍历数据集合,并在模板中显示。
  • 可读性:代码结构清晰,易于理解和维护。
  • 灵活性:可以轻松地处理不同类型的数据结构。

类型

*ngFor 可以用于遍历数组和对象:

  • 数组:遍历数组中的每个元素。
  • 对象:遍历对象的键值对。

应用场景

在 Angular 应用中,*ngFor 常用于以下场景:

  • 列表显示:如商品列表、用户列表等。
  • 动态内容生成:根据数据动态生成表单、图表等。

问题原因及解决方法

问题原因

*ngFor 循环无法显示 JSON 数据可能有以下原因:

  1. 数据未正确绑定:组件中的数据未正确传递到模板。
  2. 数据格式错误:JSON 数据格式不正确,导致无法遍历。
  3. 语法错误:模板中的 *ngFor 语法错误。

解决方法

  1. 确保数据正确绑定
  2. 确保组件中的数据已正确传递到模板。例如:
  3. 确保组件中的数据已正确传递到模板。例如:
  4. 确保组件中的数据已正确传递到模板。例如:
  5. 检查数据格式
  6. 确保 JSON 数据格式正确。例如:
  7. 确保 JSON 数据格式正确。例如:
  8. 如果 JSON 数据格式不正确,可以使用 JSON.parse 进行解析。
  9. 检查语法错误
  10. 确保模板中的 *ngFor 语法正确。例如:
  11. 确保模板中的 *ngFor 语法正确。例如:
  12. 注意 *ngFor 前面的星号 * 是必需的。

示例代码

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

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  jsonData = [
    { id: 1, name: 'Item 1' },
    { id: 2, name: 'Item 2' },
    { id: 3, name: 'Item 3' }
  ];
}
代码语言:txt
复制
<!-- app.component.html -->
<ul>
  <li *ngFor="let item of jsonData">{{ item.name }}</li>
</ul>

参考链接

通过以上步骤,您应该能够解决 *ngFor 循环无法在 Angular 9 中显示 JSON 数据的问题。如果问题仍然存在,请检查控制台是否有错误信息,并根据错误信息进行进一步的调试。

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

相关·内容

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

文章目录 前文回顾 基本语法 常见指令 NgModel NgFor NgIf Ng-container 管道 前文回顾 前面已经写了关于angular项目的基本介绍和如何创建一个angular项目,这一篇主要梳理一些...,但是angular中我们引入框架的一个核心模块FormsModule才可以,该指令就是将数据驱动视图的改变!...app.modules.ts中引入forms模块 // 核心模块 import { NgModule } from '@angular/core'; //引入forms模块实现数据的双向绑定 import...-- 使用{{}}进行数据的获取 --> {{inputData}} 运行效果 NgFor NgFor和我们js中的for循环渲染数据是一致的,所以这里是比较容易理解的,简单的演示一下...需要使用数据绑定的组件进行数据的处理 import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-home

2.5K30

Angular 2 数据显示

本章节我们将为大家介绍如何将数据显示到用户界面上,可以使用以下三种方式: 通过插值表达式显示组件的属性 通过 NgFor 显示数组型属性 通过 NgIf 实现按条件显示 ---- 通过插值表达式显示组件的属性...以下代码基于 Angular 2 TypeScript 环境配置 来创建,你可以该章节上下载源码,并修改以下提到的几个文件。...app/app.component.ts 文件: import { Component } from '@angular/core'; @Component({ selector: 'my-app'...会自动从组件中提取 title 和 mySite 属性的值,并显示浏览器中,显示信息如下: 使用 ngFor 显示数组属性 我们也可以循环输出多个站点,修改以下文件: app/app.component.ts...{{title}} 我喜欢的网站: {{mySite}} 网站列表: <li *ngFor="let site

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

    显示数据 Angular 中最典型的数据显示方式,就是把 HTML 模板中的控件绑定到 Angular 组件的属性。...="let hero of heroes"> {{ hero.name }} ` 模板里可以自己使用.语法,访问对象属性 使用 ngFor 显示数组属性... 小结 带有双花括号的插值表达式 (interpolation) 来显示一个组件属性 用 ngFor 显示数组 用一个 TypeScript 类来为你的组件描述模型数据显示模型的属性 用 ngIf...ngOnInit() Angular 第一次显示数据绑定和设置指令/组件的输入属性之后,初始化指令/组件。...ngDoCheck() 检测,并在发生 Angular 无法或不愿意自己检测的变化时作出反应。每个 Angular 变更检测周期中调用,ngOnChanges() 和 ngOnInit() 之后。

    15.3K30

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

    这些变化通过系统渗透,并最终显示相关视图。 双向绑定([(…)]) 您经常希望显示数据属性,并在用户进行更改时更新该属性。 元素另一方面为元素更改事件组合设置特定元素属性和监听。...NgModel - 与[(ngModel)]形成元素的双向绑定 开发数据输入表单时,通常都会显示数据属性,并在用户进行更改时更新该属性。 使用NgModel指令进行双向数据绑定使得这一切变得简单。...NgFor NgFor是一个迭代指令 - 一种呈现项目列表的方式。 您可以定义一个HTML块来定义应该如何显示单个项目。 您告诉Angular将该块用作呈现列表中每个项目的模板。...字符串“let hero of heroes”是指: 取英雄列表中的每个英雄,将其存储本地英雄循环变量中,并使其可用于每次迭代的模板HTML。...另一方面,属性路径中空值时不时出现可能还好,特别是当数据现在为空,将来将返回数据等待数据的时候,视图应该没有怨言地呈现,而null属性路径应该像title属性一样显示为空白。

    30K20

    AngularDart 4.0 高级-管道 顶

    介绍Angular管道,这是一种编写显示值转换的方法,您可以HTML中声明这些转换。 尝试一下实例(查看源代码)。 使用管道 管道将数据作为输入并将其转换为所需的输出。...管道和变化检测 Angular通过每个DOM事件之后运行的更改检测过程查找数据绑定值的更改:每次击键,鼠标移动,计时器滴答和服务器响应。 这可能是昂贵的。 Angular努力尽可能降低成本并适当。...Flying Heroes应用程序通过复选框开关和附加显示扩展代码,以帮助您体验这些效果。 ? 替换列表是发信号通知Angular更新显示的有效方式。 你什么时候更换清单? 数据发生变化时。... {{hero['name']}} Heroes...JsonPipe 在前面的代码示例中,第二个提取管道绑定显示了更多的管道链接。 它通过链接到内置的JsonPipe以JSON格式显示相同的英雄数据

    6.4K20

    AngularDart4.0 指南- 显示数据

    您可以通过将HTML模板中的控件绑定到Angular组件的属性来显示数据。 在这个页面中,您将创建一个包含英雄列表的组件。 您将显示英雄名单的列表,并有条件地列表下方显示一条消息。...在任一种样式中,模板数据绑定都具有对组件属性的相同访问权限。 用* ngFor显示一个列表属性 要显示英雄列表,首先向组件添加英雄名字列表,并将myHero重新定义为列表中的第一个名字。...为数据创建一个类 应用程序的代码直接在组件内定义数据,这不是最佳实践。 但是,一个简单的演示中,没关系。 目前,绑定是一个字符串列表。 实际应用中,大多数绑定是针对更专业化的对象。...Angular没有显示和隐藏消息。 它正在添加和删除DOM中的段落元素。 这可以提高性能,特别是大型项目中,当有条件地包含或排除大量的HTML与许多数据绑定。 试试看。...概要 现在你知道如何使用: 用双花括号插入来显示组件属性。 ngFor显示项目列表。 Dart类,用于为您的组件生成模型数据显示该模型的属性。 ngIf有条件地显示基于布尔表达式的HTML块。

    5.3K10

    Angular 6.x 指令快速入门

    (图片来源于网络) 第一节 - 创建指令 Angular 中,我们可以使用 HostBinding 装饰器,实现元素的属性绑定。...>Hello, Angular `, }) export class AppComponent { } 第三节 - 事件处理 Angular 中,我们可以使用 HostListener...>Hello, Angular `, }) export class AppComponent { } 第四节 - 获取宿主元素属性值 Angular 中,我们可以通过 Attribute...this.alert = AlertDangerComponent; } } 第八节 - 创建结构指令 指令的功能 该指令实现 ngIf 指令相反的效果,当指令的输入条件为 Falsy 值时,显示...let item 和 index as i 会被转换为 let-item 和 let-i="index" ngFor 指令列表上循环,每个循环中都会设置和重置它自己上下文对象上的属性。

    3.2K40

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

    组件相关的其他文件暂时先放一放,Vue开发的时候我们创建好的组件总是要挂载后才能使用的,那angular需要挂载吗?...,通过@Output装饰器来派发数据来达到双向数据流通 组件ts代码(代码来自angular中文网): export class SizerComponent { @Input() size!..."不显示" : "显示" }} Hello World NgFor(内置): 给组件ts添加属性: public list: Array..."> value: {{value}} 注意需要在module中导入FormsModule,要不然功能无法实现 此时页面恢复正常,通过输入框中更新内容,页面绑定的数据同时更新 管道 angular...中的管道与Vue中的过滤器雷同,均可以使数据按指定的格式进行显示,同样使用管道符来操作 内置管道: 演示: 将时间格式化为统一样式 DatePipe: {{ currentTime | date

    1.9K20

    Angular 显示英雄列表

    本页面,你将扩展《英雄指南》应用,让它显示一个英雄列表, 并允许用户选择一个英雄,查看该英雄的详细信息。 创建模拟(mock)英雄数据 你需要一些英雄数据以供显示。...你可以本指南底部的查看最终代码中找到它们。 @Component 元数据中指定的样式和样式表都是局限于该组件的。 ...Angular 会把所点击的  上的 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式中定义的那个。...英雄们显示列表中,并且所点英雄的详情也显示了页面的下方。 修复 - 使用 *ngIf 来隐藏空白的细节 该组件应该只有当 selectedHero 存在时才显示所选英雄的详情。...这个应用看起来又再次工作正常显示了。 英雄显示列表中,当你单击英雄的名字的时候,有关你单击英雄的详细信息就显示页面的底部了。

    4.4K70

    Angular: 最佳实践

    应用程序的 tsconfig.json 文件中,我们可以设置这个标志,告诉编辑器未明确类型时候抛出错误。否则,编辑器坚定它无法推断变量的类型,而认为是 any 类型。...并且模版中的每个地方都会显示通知,你可以使用 ngClass 设置未通知的样式。现在,我们想将通知的状态与枚举值进行比较,我们必须将枚举导入组件。...小经验:当我们带有子元素的 HTML 元素上编写 ngFor 指令时,请考虑将该元素分离为单独的组件,就像下面: <div *ngFor="let user...服务 Services 服务是 Angular 中业务逻辑存放和数据处理的方案。拥有提供数据访问、数据操作和其他可重用逻辑的结构良好的服务非常重要。...比如,你的 API 提供了一个接入点,返回一个 Country 对象 JSON 对象,你可以应用程序使用这列表数据实现选择国家/地区的功能。

    2.8K40

    Angular 2 架构(下)

    数据绑定(Data binding) 数据绑定为应用程序提供了一种简单而一致的方法来显示数据以及数据交互,它是管理应用程序里面数值的一种机制。...插值 : HTML 标签中显示组件值。 {{title}} 属性绑定: 把元素的属性设置为组件中属性的值。...当 Angular 渲染它们时,它会根据指令对 DOM 进行修改。 指令是一个带有"指令元数据"的类。 TypeScript 中,要通过 @Directive 装饰器把元数据附加到类上。... *ngFor 告诉 Angular...传统的开发模式中,调用者负责管理所有对象的依赖,循环依赖一直是梦魇,而在依赖注入模式中,这个管理权交给了注入器(Injector),它在软件运行时负责依赖对象的替换,而不是在编译时。

    2.2K20

    使用Angular8和百度地图api开发《旅游清单》

    ,*ngFor循环指令,类似的*ngIf为条件判断,事件绑定用(click),我们看看组件的ts文件对应的写法: import { Component } from '@angular/core';...每个组件都会定义一个类,其中包含应用的数据和逻辑,并与一个 HTML 模板相关联,该模板定义了一个供目标环境下显示的视图 比如: import { Component, OnInit } from '@...生命周期里,初始化地图数据,根据前面我们定义的list server,把hasDone为true的数据过滤出来,显示地图上。...提供的FormBuilder来处理表单数据,这里需要注意,我们提交表单的时候,需要先调用百度地图的api去生成经纬度数据,之后一起添加到清单,这样做的目的是要想画路线图,我们需要给百度地图api提供经纬度数据...如果想了解完整代码,欢迎我的github上查看。 接下来看看我的大陆页面,其实涉及的难点不是很多,主要是根据hasDone为true或false去显示不同的样式。

    6K30
    领券