ionic3 關(guān)于*ngFor 嵌套多層循環(huán)的用法詳解

本文參考鏈接:詳解Angular2 關(guān)于*ngFor 嵌套循環(huán)

目前已經(jīng)用ionic開發(fā)的同學(xué)大多都會(huì)遇到一個(gè)問(wèn)題,如何把一個(gè)數(shù)據(jù)集合按照預(yù)期展示在html頁(yè)面,本文以下會(huì)羅列 多層數(shù)據(jù)嵌套 如何 循環(huán)遍歷 并展示的問(wèn)題.

1.我們先羅列幾種格式的數(shù)據(jù):
 // 1.數(shù)組 ->字典
   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.數(shù)組 ->字典->數(shù)組
   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.數(shù)組 ->數(shù)組
    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.字典->數(shù)組->字典->數(shù)組  (頁(yè)面顯示的為這個(gè)數(shù)據(jù),四層嵌套)
 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.字典->數(shù)組->字典
  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
關(guān)鍵代碼
 getKeys(item) {
  return Object.keys(item);
 }
html頁(yè)面代碼
<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的語(yǔ)法,想深究的同學(xué)可以參考Angular官網(wǎng),也可以參考此鏈接

這里給大家提供一個(gè)調(diào)試數(shù)據(jù)的小技巧,我們通常使用ionic開發(fā)都會(huì)使用一個(gè)http的插件

import { HTTP } from '@ionic-native/http'
//或者這個(gè)
import {Http} from '@angular/http';

在我們發(fā)送網(wǎng)絡(luò)請(qǐng)求的時(shí)候可能在瀏覽器上輸出不了請(qǐng)求到的數(shù)據(jù),這個(gè)時(shí)候我們通常會(huì)用模擬器來(lái)跑,這樣調(diào)試起來(lái)就非常麻煩了,現(xiàn)在我們可以這樣做,把數(shù)據(jù)摘出來(lái)(代碼如下),用本地?cái)?shù)據(jù)調(diào)試html,可以正常展示了再接上請(qǐng)求到的數(shù)據(jù) 整體跑一下,這樣可以節(jié)省不少調(diào)試時(shí)間.

如果其他同學(xué)關(guān)于調(diào)試數(shù)據(jù)還有更好的方法,歡迎@我,也歡迎大家加入QQ群 64903116 討論ionic開發(fā)中的各種問(wèn)題;

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已經(jīng)上傳到github,有需要的請(qǐng)自行下載
(下載demo的同學(xué)請(qǐng)注意,此代碼是寫在Contact頁(yè)面的,不要找錯(cuò)了哦)

https://www.51zxw.net/study.asp?vip=21645582

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容