Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何将逗号分隔的对象类型添加到NgFor循环中?_Json_Angular_Ngfor - Fatal编程技术网

Json 如何将逗号分隔的对象类型添加到NgFor循环中?

Json 如何将逗号分隔的对象类型添加到NgFor循环中?,json,angular,ngfor,Json,Angular,Ngfor,我想分别绑定货币代码和值 "rates": { "USD": 1, "AED": 3.672057, "ARS": 56.01249, "AUD": 1.46368, "BGN": 1.77167, "BRL": 4.087588, "BSD": 1, "CAD": 1.320503, "CHF": 0.987394, "CLP": 71

我想分别绑定货币代码和值

"rates": {
        "USD": 1,
        "AED": 3.672057,
        "ARS": 56.01249,
        "AUD": 1.46368,
        "BGN": 1.77167,
        "BRL": 4.087588,
        "BSD": 1,
        "CAD": 1.320503,
        "CHF": 0.987394,
        "CLP": 716.341326,
        "CNY": 7.13045,
        "COP": 3416.761905,
        "CZK": 23.407844,
        "DKK": 6.757576,
        "DOP": 51.214847,
        "EGP": 16.42298,
        "EUR": 0.906246,
        "FJD": 2.190098,
        "GBP": 0.812305,
        "GTQ": 7.682227,
        "HKD": 7.838661,
        "HRK": 6.706097,
        "HUF": 298.791592,
        "IDR": 14146.297846,
        "ILS": 3.517842,
        "INR": 71.751368,
        "ISK": 126.170061,
        "JPY": 106.936393,
        "KRW": 1194.541725,
        "KZT": 387.848649,
        "MXN": 19.613284,
        "MYR": 4.184189,
        "NOK": 8.99096,
        "NZD": 1.561619,
        "PAB": 1,
        "PEN": 3.352305,
        "PHP": 51.899054,
        "PKR": 156.32244,
        "PLN": 3.930302,
        "PYG": 6522.909091,
        "RON": 4.285713,
        "RUB": 65.941596,
        "SAR": 3.75059,
        "SEK": 9.657741,
        "SGD": 1.382595,
        "THB": 30.646268,
        "TRY": 5.701489,
        "TWD": 31.23947,
        "UAH": 24.982101,
        "UYU": 36.570846,
        "VND": 23112.280702,
        "ZAR": 14.803694
    }
我认为:

 <a class="dropdown-item w-r" *ngFor="let cur of currencies?.rates" (click)="onCurrency(cur)" >{{cur}}</a>
{{cur}
错误:

找不到类型不同的支持对象“[object]” “对象”。NgFor只支持绑定到数组之类的可重用文件


要使用ngFor,需要将对象转换为对象数组。在.TS上执行以下操作

let curr={
“费率”:{
“美元”:1,
“AED”:3.672057,
“ARS”:56.01249,
“澳元”:1.46368,
“BGN”:1.77167,
“BRL”:4.087588,
“BSD”:1,
“CAD”:1.320503,
“瑞士法郎”:0.987394,
“中电”:716.341326,
“人民币”:7.13045,
“COP”:3416.761905,
“捷克克朗”:23.407844,
“丹麦克朗”:6.757576,
“DOP”:51.214847,
“埃及镑”:16.42298,
“欧元”:0.906246,
“FJD”:2.190098,
“英镑”:0.812305,
“GTQ”:7.682227,
“港币”:7.838661,
“HRK”:6.706097,
“HUF”:298.791592,
“印尼盾”:14146.297846,
“ILS”:3.517842,
“印度卢比”:71.751368,
“ISK”:126.170061,
“日元”:106.936393,
“韩元”:1194.541725,
“KZT”:387.848649,
“MXN”:19.613284,
“马币”:4.184189,
“挪威克朗”:8.99096,
“新西兰元”:1.561619,
“PAB”:1,
“笔”:3.352305,
“PHP”:51.899054,
“PKR”:156.32244,
“PLN”:3.930302,
“PYG”:6522.909091,
“罗恩”:4.285713,
“摩擦”:65.941596,
“SAR”:3.75059,
“瑞典克朗”:9.657741,
“新加坡元”:1.382595,
“泰铢”:30.646268,
“尝试”:5.701489,
“TWD”:31.23947,
“乌克兰格里夫纳”:24.982101,
“UYU”:36.570846,
“越南盾”:23112.280702,
“南非兰特”:14.803694
}
};
const-mapped=Object.keys(curr.rates).map(key=>({type:key,value:curr.rates[key]}));

console.log(映射)要使用ngFor,您需要将对象转换为对象数组。在.TS上执行以下操作

let curr={
“费率”:{
“美元”:1,
“AED”:3.672057,
“ARS”:56.01249,
“澳元”:1.46368,
“BGN”:1.77167,
“BRL”:4.087588,
“BSD”:1,
“CAD”:1.320503,
“瑞士法郎”:0.987394,
“中电”:716.341326,
“人民币”:7.13045,
“COP”:3416.761905,
“捷克克朗”:23.407844,
“丹麦克朗”:6.757576,
“DOP”:51.214847,
“埃及镑”:16.42298,
“欧元”:0.906246,
“FJD”:2.190098,
“英镑”:0.812305,
“GTQ”:7.682227,
“港币”:7.838661,
“HRK”:6.706097,
“HUF”:298.791592,
“印尼盾”:14146.297846,
“ILS”:3.517842,
“印度卢比”:71.751368,
“ISK”:126.170061,
“日元”:106.936393,
“韩元”:1194.541725,
“KZT”:387.848649,
“MXN”:19.613284,
“马币”:4.184189,
“挪威克朗”:8.99096,
“新西兰元”:1.561619,
“PAB”:1,
“笔”:3.352305,
“PHP”:51.899054,
“PKR”:156.32244,
“PLN”:3.930302,
“PYG”:6522.909091,
“罗恩”:4.285713,
“摩擦”:65.941596,
“SAR”:3.75059,
“瑞典克朗”:9.657741,
“新加坡元”:1.382595,
“泰铢”:30.646268,
“尝试”:5.701489,
“TWD”:31.23947,
“乌克兰格里夫纳”:24.982101,
“UYU”:36.570846,
“越南盾”:23112.280702,
“南非兰特”:14.803694
}
};
const-mapped=Object.keys(curr.rates).map(key=>({type:key,value:curr.rates[key]}));

console.log(映射)您可以尝试使用keyvalue管道:

<a class="dropdown-item w-r" *ngFor="let cur of currencies?.rates | keyvalue" (click)="onCurrency(cur)" ><br>{{cur.key}}:{{cur.value}}</a> 

{{cur.key}:{{{cur.value}

demo您可以尝试使用keyvalue管道:

<a class="dropdown-item w-r" *ngFor="let cur of currencies?.rates | keyvalue" (click)="onCurrency(cur)" ><br>{{cur.key}}:{{cur.value}}</a> 

{{cur.key}:{{{cur.value}

demo我从您那里了解到的是,您试图通过使用ngFor进行迭代,以json显示所有数据 我建议您在代码隐藏中解析json,并在“result”对象中迭代 比如:

  • 在代码背后解析json
  • 为结果属性键创建getter

    get Resultkeys(){return Object.keys(result);}

  • 创建获取给定键的值的函数

    getResultKeyValue(键){返回结果[键];}

  • 使用ngFor在html代码中迭代ResultKeys

  • 显示{getResultKeyValue(键)}


  • 我从您那里了解到的是,您试图通过使用ngFor进行迭代,以json显示所有数据 我建议您在代码隐藏中解析json,并在“result”对象中迭代 比如:

  • 在代码背后解析json
  • 为结果属性键创建getter

    get Resultkeys(){return Object.keys(result);}

  • 创建获取给定键的值的函数

    getResultKeyValue(键){返回结果[键];}

  • 使用ngFor在html代码中迭代ResultKeys

  • 显示{getResultKeyValue(键)}

  • 使用Object.entries

    Object.entries(obj)–返回[key,value]对的数组

    var cur={“USD”:1,“AED”:3.672057,“ARS”:56.01249,“AUD”:1.46368,“BGN”:1.77167,“BRL”:4.087588,“BSD”:1,“CAD”:1.320503,“CHF”:0.987394,“CLP”:716.341326,“CNY”:7.13045,“COP”:3416.761905,“CZKK”:23.407844,“DKK”:6.75757576,“DOP”:51.214847,“EGP”:16.428,“EUR”:0.906246,“JD”:1908,“GT2227”277,“GT”:230687,“HKD”:7.838661,“HRK”:6.706097,“HUF”:298.791592,“IDR”:14146.297846,“ILS”:3.517842,“INR”:71.751368,“ISK”:126.170061,“JPY”:106.936393,“KZT”:1194.541725,“KZT”:387.848649,“MXN”:19.613284,“MYR”:4.184189,“NOK”:8.99096,“NZD”:1.561619,“PAB”:1,“PEN”:3.352305,“PHP”:51.899054,“PK244”,PY0302,“PLN”:932“印尼国家电力公司”“:6522.909091,RON:4.285713,RUB:65.941596,SAR:3.75059,SEK:9.657741,SGD:1.382595,THB:30.646268,TRY:5.701489,TWD:31.23947,UAH:24.982101,UYU:36.570846,VND:23112.280702,ZAR:14.803694}”
    Object.entries(cur.forEach)(obj=>console.log(`${obj[0]}${obj[1]}')使用Object.entries

    Object.entries(obj)–返回[key,value]对的数组

    var cur={“USD”:1,“AED”:3.672057,“ARS”:56.01249,“AUD”:1.46368,“BGN”:1.77167,“BRL”:4.087588,“BSD”:1,“CAD”:1.320503,“CHF”:0.987394,“CLP”:716.341326,“CNY”:7.13045,“COP”:3416.761905,“CZK”:23.407844,“DKK”:6.75757576,“DOP”:51.214847,“EGP”:16.428,“EUR”:0.906246,“F098”:230815英镑,