Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Angular 角度4找不到不同的支撑对象_Angular_Http_Rxjs_Bitcoin - Fatal编程技术网

Angular 角度4找不到不同的支撑对象

Angular 角度4找不到不同的支撑对象,angular,http,rxjs,bitcoin,Angular,Http,Rxjs,Bitcoin,我在应用程序中绑定或显示某些数据时遇到问题 我想这样做: html: ` 服务台 import { Injectable } from '@angular/core'; import { Http, Headers, Response } from '@angular/http'; import 'rxjs/add/operator/toPromise'; import {Observable} from "rxjs"; import 'rxjs/Rx'; import 'rxjs/add/op

我在应用程序中绑定或显示某些数据时遇到问题

我想这样做:

html:

` 服务台

import { Injectable } from '@angular/core';
import { Http, Headers, Response } from '@angular/http';
import 'rxjs/add/operator/toPromise';
import {Observable} from "rxjs";
import 'rxjs/Rx';
import 'rxjs/add/operator/catch';
import { MarketViewModel } from '../comprarmonedas/datosmoneda'


@Injectable()
export class BittrexService {

  constructor(private http: Http, private marketModel : MarketViewModel) { }

  public getPrices() :Observable<MarketViewModel> {
    return this.http.get('https://bittrex.com/api/v1.1/public/getmarketsummary?market=btc-ltc')
    .map((response: Response) => response.json());
  }

}

问题是您试图迭代的是字符串,而不是数组。
component.ts
中,您有以下代码行:

this.bittrexService.getPrices()
  .subscribe(
    data => this.prices = JSON.stringify(data)
  );
我想你是想这样做的:

this.bittrexService.getPrices()
  .subscribe(
    data => this.prices = data.result
  );
当您使用
JSON.stringify
将数据转换为字符串时,
ngFor
无法使用它,因为字符串是不可编辑的。相反,如果您返回
data.result
,它是一个数组,
ngFor
知道如何迭代它

编辑:
正如yanbu在评论中指出的,您的模板中还有另一个bug。而不是:

<div *ngFor="let price of prices">
  {{prices.Low}}
</div>

{{价格低}}
您需要使用:

<div *ngFor="let price of prices">
  {{price.Low}}
</div>

{{price.Low}

这是因为prices是一个数组,它没有属性
Low
,其中price是该数组的一个元素,该数组应该包含属性
Low

,谢谢您的帮助。当我尝试{prices.Low}时,我没有得到任何错误,但是数据也没有绑定到DOM上。如果我尝试{{price},我会得到[object object]。尝试
{{price.Low}
谢谢@yanbu,很好的捕获。我已经为你更新了答案,克劳迪奥。
this.bittrexService.getPrices()
  .subscribe(
    data => this.prices = data.result
  );
<div *ngFor="let price of prices">
  {{prices.Low}}
</div>
<div *ngFor="let price of prices">
  {{price.Low}}
</div>