Angular 角度4找不到不同的支撑对象
我在应用程序中绑定或显示某些数据时遇到问题 我想这样做: html: ` 服务台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
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>