美文网首页ionic ionic4
ionic3 关于*ngFor 嵌套多层循环的用法详解

ionic3 关于*ngFor 嵌套多层循环的用法详解

作者: 阡陌不言 | 来源:发表于2017-07-10 16:03 被阅读5368次

本文参考链接:详解Angular2 关于*ngFor 嵌套循环

目前已经用ionic开发的同学大多都会遇到一个问题,如何把一个数据集合按照预期展示在html页面,本文以下会罗列 多层数据嵌套 如何 循环遍历 并展示的问题.

1.我们先罗列几种格式的数据:
 // 1.数组 ->字典
   datas: Array<any> = [
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "24" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "24" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "24" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "24" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "24" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "24" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "24" },
 ];
   // 2.数组 ->字典->数组
   data2: Array<any> = [
  { num1:  [
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "21" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "22" }] },

  { num2:  [
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "23" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "24" }] },
  
  { num3: [
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "25" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "26" }] }

 ];
  // 3.数组 ->数组
    data4: Array<any> = [
   [
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "21" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "22" }] ,

 [
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "23" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "24" }] ,

  [
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "25" },
  { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "26" }] 

 ];
 // 4.字典->数组->字典->数组  (页面显示的为这个数据,四层嵌套)
 data5 = {
  '1':[ { num: [ "2017-04-12", "1231234", "1233", "21" ]},
        { num: [ "2017-04-12", "1231234", "1233", "22" ]}
      ] ,

  '2': [
        { num: [ "2017-04-12", "1231234", "1233", "23" ]},
        { num: [ "2017-04-12", "1231234", "1233", "24" ]}
        ] ,
  '3': [
        { num: [ "2017-04-12", "1231234", "1233", "25" ]},
        { num: [ "2017-04-12", "1231234", "1233", "26" ]}
        ] 
 }
// 5.字典->数组->字典
  data6 = {
  '1':[ {num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "21"},
        { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "22"}
      ] ,

  '2': [
        { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "23"},
        {num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "24"}
        ] ,
  '3': [
        { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "25"},
        { num: 1, date: "2017-04-12", sellNum: "1231234", sellMpney: "1233", returnNum: "26"}
        ] 
 }
2.给大家一一截图了展示效果
![Uploading data2_827681.png . . .] data2.png data4.png data5.png data6.png
关键代码
 getKeys(item) {
  return Object.keys(item);
 }
html页面代码
<ion-header>
  <ion-navbar>
    <ion-title>
      Contact
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content>

<!--解析datas-->
    <!--<ion-row *ngFor="let item of datas">
      <ion-col *ngFor="let key of getKeys(item)"> 
       {{item[key]}}
       </ion-col>
    </ion-row>-->

<!--解析data2-->
    <!--<ion-col *ngFor="let item of data2">
      <ion-col *ngFor="let key of getKeys(item)"> 
        <ion-row *ngFor="let item2 of item[key]">{{ item2.returnNum }}</ion-row>
       </ion-col>
    </ion-col>-->

<!--解析data4-->
  <!--<ion-row *ngFor="let item of data4">

      <ion-col *ngFor="let item2 of item">
        <ion-col *ngFor="let key of getKeys(item2)">{{item2[key]}}</ion-col>
      </ion-col>  
  </ion-row>-->

<!--解析data5-->
  <div *ngFor="let key of getKeys(data5)">
    <ion-col *ngFor="let item of data5[key]">
      <ion-col *ngFor="let key of getKeys(item)"> 
        <ion-row *ngFor="let item2 of item[key]">{{ item2 }}</ion-row>
       </ion-col>
    </ion-col>
  </div>
  
  <!--解析data6-->
  <!--<ion-row *ngFor="let key of getKeys(data6)">
    <ion-col *ngFor="let item of data6[key]">
        <ion-col *ngFor="let key of getKeys(item)"> {{ item[key] }}</ion-col>

     </ion-col>
  </ion-row>-->


</ion-content>

附: *ngFor 是 Angular的语法,想深究的同学可以参考Angular官网,也可以参考此链接

这里给大家提供一个调试数据的小技巧,我们通常使用ionic开发都会使用一个http的插件

import { HTTP } from '@ionic-native/http'
//或者这个
import {Http} from '@angular/http';

在我们发送网络请求的时候可能在浏览器上输出不了请求到的数据,这个时候我们通常会用模拟器来跑,这样调试起来就非常麻烦了,现在我们可以这样做,把数据摘出来(代码如下),用本地数据调试html,可以正常展示了再接上请求到的数据 整体跑一下,这样可以节省不少调试时间.

如果其他同学关于调试数据还有更好的方法,欢迎@我,也欢迎大家加入QQ群 64903116 讨论ionic开发中的各种问题;

export class ISSConfig {

    static loadData: any = {
        "errCode": "000000",
        "errDesc": "",
        "svcFlowNo": "11730KNRDRAKCCA5",
        "cliFlowNo": "111111",
        "object": {
            "pageRow": 0,
            "startPage": 0,
            "totalRow": 7,
            "list": [
                {
                    "date": "20170428",
                    "firstTime": "09:59:17",
                    "lastTime": "17:33:48",
                    "hour": 7,
                    "minute": 34,
                    "minute2": 454
                },
                {
                    "date": "20170430",
                    "firstTime": "17:33:48",
                    "lastTime": "17:33:48",
                    "hour": 0,
                    "minute": 0,
                    "minute2": 0
                }
            ]
        }

    }
}

本文demo已经上传到github,有需要的请自行下载
(下载demo的同学请注意,此代码是写在Contact页面的,不要找错了哦)

相关文章

  • ionic3 关于*ngFor 嵌套多层循环的用法详解

    本文参考链接:详解Angular2 关于*ngFor 嵌套循环 目前已经用ionic开发的同学大多都会遇到一个问题...

  • GO学习 多重for循环

    多重for循环 packagemain import"fmt" funcmain(){ /* 循环嵌套:多层循环...

  • Java--嵌套循环

      在一个循环语句内部再嵌套一个或多个循环,称为嵌套循环。while、do-while与for循环可以任意嵌套多层...

  • ng4.x 常用指令

    # 1 : *ngFor --- 数据循环 No 1:*ngFor普通循环 No 2:循环时设置序列号 N...

  • python有求必应屋

    如何跳出多层嵌套循环 单层循环可以用break,多层循环可以使用以下的三种方法 设置一个标记 将循环写在函数内部,...

  • 递归循环调用

    js多次调用接口,全部成功之后执行 输出 多层数组嵌套循环输出

  • flatten,map,reduce方法总结

    (1)flatten的用法 将一个嵌套多层的数组 array(数组) (嵌套可以是任何层数)转换为只有一层的数组,...

  • angular6.x--指令与数据绑定

    >数据文本绑定 {{}} >绑定属性绑定 html >*ngFor 普通循环 你可能试过把 *ngFor ...

  • 问题汇总(二)

    1、angular2实现纯数字的循环ngFor 我们知道angular2里的ngFor实现数组的循环是比较方...

  • golang学习笔记之-多层循环嵌套贴标签

    如果是多层循环嵌套,那么默认结束最里层的循环。如果想结束外层循环,可以通过"贴标签"的形式。 正常使用 贴标签使用

网友评论

  • 1d91211faa62:我只要调用循环里面的某个循环内容应该在HTML页面怎么写那个调用?也和你上面一样
    <ion-col *ngFor="let item of data6[key]">
    <ion-col *ngFor="let key of getKeys(item)"> {{ item[key] }}</ion-col>
    </ion-col>这样调用?
  • IT杰哥:demo 什么都没有
    阡陌不言:所有的关键代码和展示效果都已经在文章里面粘出来了,如果你不知道有什么用,那说明你根本不需要,何必浪费时间
  • 晓锌:点个赞,

本文标题:ionic3 关于*ngFor 嵌套多层循环的用法详解

本文链接:https://www.haomeiwen.com/subject/kjoyhxtx.html