离子错误:尝试diff'[object Object]'时出错

问题描述 投票:0回答:2

我似乎无法弄清楚我做错了什么。我在类型的Market []变量上尝试* ngFor,但由于某种原因它无法正确读取数组。离子是抱怨市场不是一个数组,但从我的实现它似乎是。帮助

市场定价:

 export interface Market {
    id: string;
    symbol: string;
    base: string;
    quote: string;
    info: any;
    lot: number;
}

我的服务电话

  getMarketData(): Observable<Market[]> {
    let bittrex = new ccxt.poloniex();
    return Observable.fromPromise(bittrex.loadMarkets());
  }

我的页面设置数据

    markets: Market[] = [];
    async loadMarkets() {
      this.cryptoService.getMarketData().subscribe((data: Market[]) => {
      this.markets = data;
    })
  }

我的模板

<ion-list #scheduleList [hidden]="markets.length < 0">

<ion-item-group *ngFor="let market of markets">

  <ion-item-divider sticky>
    <ion-label>
      {{market}}
    </ion-label>
  </ion-item-divider>
</ion-item-group>

我不明白的是为什么我没有回到阵列。

error

angular ionic2
2个回答
1
投票

所以基本上我的返回对象不是真正的数组。尽管Typescript正在返回Market []数组。结果是市场的一个对象。诀窍是。

   getMarketData(): Observable<Market[]> {
    let bittrex = new ccxt.poloniex();
    return Observable.fromPromise(bittrex.loadMarkets()).map(data => 
    Object.keys(data).map(k => data[k]))
}

0
投票

*ngIf尝试之前检查*ngFor

<div *ngIf="markets">
<ion-item-group *ngFor="let market of markets">

  <ion-item-divider sticky>
    <ion-label>
      {{market}}
    </ion-label>
  </ion-item-divider>
</ion-item-group>
</div>

并检查你的回应data实例是一个array | correct type

this.markets=[]
if (data instanceof Array) {
      this.markets = data;
  }
© www.soinside.com 2019 - 2024. All rights reserved.