热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用*ngFor显示json对象-Howtodisplayjsonobjectusing*ngFor

IwanttodisplaythebelowdatafromFirebase我想在Firebase中显示以下数据{-KBN9O_qqz-nZ9tPWFdM:{

I want to display the below data from Firebase

我想在Firebase中显示以下数据

{
   "-KBN9O_qqz-nZ9tPWFdM":{
      "createdAt":1456399292790,
      "isActive":true,
      "name":"Hero 1"
   },
   "-KBN9gjJw1ZlMgt9pVsl":{
      "createdAt":1456399371220,
      "isActive":true,
      "name":"Hero 2"
   },
   "-KBN9hYI4vYAsyh5k1lX":{
      "createdAt":1456399374548,
      "isActive":true,
      "name":"Hero 3"
   }
}

when doing angular.io Tour of Heroes tutorial for example

在做angular.io Tour of Heroes教程时,例如

  • {{hero.id}} {{hero.name}}
  • So hero id should show for example -KBN9hYI4vYAsyh5k1lX and hero name should show for example hero 3

    所以英雄id应该显示例如-KBN9hYI4vYAsyh5k1lX和英雄名称应该显示例如英雄3


    I have done some research and come across this stackoverflow solution by @Thierry Templier access key and value of object using *ngFor

    我做了一些研究,并通过@Thierry Templier使用* ngFor访问密钥和对象的值来遇到这个stackoverflow解决方案

    (1) Is this the right solution to my problem?

    (1)这是解决我问题的正确方法吗?

    (2) Is there a simpler solution to this problem because I feel that it would be really common for developers using Angular2 to display such json data.

    (2)是否有一个更简单的解决方案,因为我觉得使用Angular2的开发人员显示这样的json数据是很常见的。

    3 个解决方案

    #1


    37  

    You need to implement a custom pipe to do this. ngFor only supports array and not object.

    您需要实现自定义管道才能执行此操作。 ngFor仅支持数组而不支持对象。

    This pipe will look like that:

    这个管道看起来像这样:

    @Pipe({name: 'keys'})
    export class KeysPipe implements PipeTransform {
      transform(value, args:string[]) : any {
        let keys = [];
        for (let key in value) {
          keys.push({key: key, value: value[key]});
        }
        return keys;
      }
    }
    

    and use it like that:

    并使用它:

               
      Key: {{entry.key}}, value: {{entry.value}}
    
    

    See this question for more details:

    有关详细信息,请参阅此问题:

    • access key and value of object using *ngFor
    • 使用* ngFor访问对象的键和值

    #2


    4  

    You can put the keys in an array and ng-repeat the keys.

    您可以将键放在一个数组中并重复键。

    export class IterateOverObject {
        public arrayOfKeys;
    
        @Input heros;
        constructor() {
            this.arrayOfKeys = Object.keys(this.heros);
        }
    }
    
    
  • {{key}} {{heros[key].name}}
  • This looks simple to me.. More info is here

    这看起来很简单..更多信息在这里

    #3


    4  

    Firebase id is called $.key. Also, # is now changed to let. This would work for you:

    Firebase ID称为$ .key。此外,#现在更改为let。这对你有用:

  • {{hero.$key}} {{hero.name}}

  • 推荐阅读
    • python3 nmap函数简介及使用方法
      本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
    • 如何自行分析定位SAP BSP错误
      The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
    • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
    • 开发笔记:加密&json&StringIO模块&BytesIO模块
      篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
    • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
    • Android JSON基础,音视频开发进阶指南目录
      Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
    • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
    • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
    • Python爬虫中使用正则表达式的方法和注意事项
      本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
    • React项目中运用React技巧解决实际问题的总结
      本文总结了在React项目中如何运用React技巧解决一些实际问题,包括取消请求和页面卸载的关联,利用useEffect和AbortController等技术实现请求的取消。文章中的代码是简化后的例子,但思想是相通的。 ... [详细]
    • uniapp开发H5解决跨域问题的两种代理方法
      本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
    • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
    • 图像因存在错误而无法显示 ... [详细]
    • Java学习笔记之面向对象编程(OOP)
      本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
    • 如何用JNI技术调用Java接口以及提高Java性能的详解
      本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
    author-avatar
    怦然欣动and败
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有