亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

渲染與數組參數匹配的div

渲染與數組參數匹配的div

牧羊人nacy 2024-01-11 16:40:48
我在 Angular 8 中渲染參數時遇到問題,我從 API 獲取數據,需要在與這些數據匹配的 div 中渲染這些數據,但我遇到了數據在每個div 中顯示的問題,如下所示:這里,“Drops”、“Misc”、“Network”是需要渲染較低類別的主要div。盡管如此,我想要的是,例如,在主“ Drops”中只有“Drops Aluminium”,在“Misc”中只有“VANNE”,在“Network”中只有“Main”。較低類別僅當其 id 位于主id 內時才應呈現(參見下圖 2)。我嘗試過的:綁定 div 內的值,因為所有主類別和較低類別都有如下 id:這是一個 stackblitz 示例:https://stackblitz.com/edit/angular-me2ppb ?file=src%2Fapp%2Fapp.component.ts預先感謝您的時間和幫助,非常感謝!
查看完整描述

2 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

如果我理解正確的話,你能用模板中的嵌套循環來解決它嗎?


<div *ngFor="let main of total_by_level | keyvalue">

    {{label_name[main.key]}}

    <div *ngFor="let sub of main.value | keyvalue">

        {{label_name[sub.key]}}

    </div>

</div>

這將導致:


Network

Main

Drops

Drops Aluminium

Misc

VANNE


查看完整回答
反對 回復 2024-01-11
?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

您在這里有 2 個選擇:

  1. 調整您的 HTML 以適當地循環total_by_level和查詢label_name

  2. 在代碼中構建輸出

看起來您兩種都嘗試過,因此對其中任何一種都持開放態度。就我個人而言,我更喜歡在代碼中做盡可能多的事情,并讓 HTML 盡可能簡單,所以我會采用方法 2。

ngOnInit()(這應該是您進行任何初始處理的地方),我將根據 上的結構構建一個數組total_by_level

output: any[];


ngOnInit() {    

  this.output = Object.keys(this.total_by_level).map(levelKey => {

    const child = this.total_by_level[levelKey];


    return {

      level: {

        label: this.label_name[levelKey]          

      },

      children: Object.keys(child).map(childKey => ({

        label: this.label_name[childKey],

        value: child[childKey]

      }))

    };

  });

}

然后在 HTML 中綁定到這個數組就變得很簡單:


<div *ngFor="let item of output">

  {{item.level.label}}

  <div *ngFor="let child of item.children">

    {{child.label}}

    {{child.value}}

  </div>

</div>

您正在處理一些奇怪的數據結構,我不確定您的術語,所以我在這里猜測了一些。您可以采用這個想法的概念并使用它。我還假設 中只有 1 個嵌套子級total_by_level。


演示: https: //stackblitz.com/edit/angular-upqdex


查看完整回答
反對 回復 2024-01-11
  • 2 回答
  • 0 關注
  • 168 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號