首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ngFor在对象上而不是数组上?

ngFor在对象上而不是数组上?
EN

Stack Overflow用户
提问于 2018-12-22 06:24:21
回答 2查看 216关注 0票数 0

在控制台中接收此错误:

无法找到“对象”类型的不同支持对象“对象对象”。NgFor只支持绑定到诸如数组之类的Iterable。

services.ts

代码语言:javascript
运行
复制
      private url = "https://api.iextrading.com/1.0/stock/market/batch?symbols=SNAP,fb,AIG%2b,GOOG,AAPL,AMZN&types=quote";

      constructor(private http: HttpClient) {}

      getCID(): Observable<any> {
        return this.http.get<any>(this.url);
      }

component.ts

代码语言:javascript
运行
复制
      ngOnInit() {
        this.svc.getCID().subscribe(data => {
          this.cidData = data;
          console.log(data);
        });

component.html

代码语言:javascript
运行
复制
    <div *ngIf="cidData">
      <ul>
        <li *ngFor="let x of cidData">
          <a routerLink="/companydetails/{{x.symbol}}">{{x.symbol}}</a>

API调用

代码语言:javascript
运行
复制
    {"GOOG":{"quote":{"symbol":"GOOG","companyName":"Alphabet Inc."}}, "SNAP":{etc...}

我认为问题是cidData不是数组,但我不确定如何将它作为数组返回

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-22 06:32:09

如果您使用的是角版本6,那么您可以使用内置管道键值来迭代对象。

代码语言:javascript
运行
复制
 <li *ngFor="let x of cidData | keyvalue">
      <a routerLink="/companydetails/{{x.value.quote.symbol}}">{{x.value.quote.symbol}}</a>
票数 2
EN

Stack Overflow用户

发布于 2018-12-22 07:04:49

若要通过Object.values(obj)将对象转换为数组,您可以看到here

代码语言:javascript
运行
复制
// object with your example here
    ngOnInit() {
        this.svc.getCID().subscribe(data => {
            this.cidData = data;
            let array = 
            Object.values(this.cidData.GOOD) 
            // here you have an array    
            console.log(array);
   });

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53893518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档