Angular 4 [对象对象]
Angular 4 [object Object]
我试图遍历数组,但 dom 显示的是 [object Object]。在其他线程中,一些人建议使用 Stringify,然后它会显示信息,但我无法遍历字符串。感谢您的帮助。
这是我的代码:
html
<div *ngFor="let price of prices">
{{prices}}
</div>
service.ts
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-zec')
.map((response: Response) => response.json());
}
}
interface
export class MarketViewModel {
public success : boolean;
public message : string;
public result : MarketListObject[];
}
export class MarketListObject {
public MarketName : string;
public High : number;
public Low : number;
public Volume : number;
public Last : number;
public BaseVolume : number;
public TimeStamp : number;
public Bid : number;
public Ask : number;
public OpenBuyOrders : number;
public OpenSellOrders : number;
public PrevDay : number;
public Created : number;
}
component.ts
import { Component, OnInit } from '@angular/core';
import { Http, Response, Headers } from '@angular/http';
import { BittrexService } from '../../bittrex/bittrex.service';
import {Observable} from "rxjs";
@Component({
selector: 'app-comprarzec',
templateUrl: './comprarzec.component.html',
styleUrls: ['./comprarzec.component.scss']
})
export class ComprarzecComponent implements OnInit {
private prices = [];
constructor(private bittrexService: BittrexService) {
this.bittrexService = bittrexService;
}
ngOnInit(){
this.bittrexService.getPrices()
.subscribe(
data => this.prices = data.result
);
}
}
替换为:
<div *ngFor="let price of prices">
High : {{price.High}} , Low : {{price.Low}}
</div>
您正在尝试打印对象数组 prices
,
应该是 price
而不是 prices
High : {{price.High}} , Low : {{price.Low}}
像这样你可以访问任何给定的值:
{
"MarketName": "BTC-ZEC",
"High": 0.16290000,
"Low": 0.13087156,
"Volume": 12760.98721068,
"Last": 0.15650003,
"BaseVolume": 1908.20341779,
"TimeStamp": "2017-06-14T19:15:25.57",
"Bid": 0.15650003,
"Ask": 0.15786551,
"OpenBuyOrders": 1130,
"OpenSellOrders": 1257,
"PrevDay": 0.13380000,
"Created": "2016-10-28T17:13:10.833"
}
我试图遍历数组,但 dom 显示的是 [object Object]。在其他线程中,一些人建议使用 Stringify,然后它会显示信息,但我无法遍历字符串。感谢您的帮助。
这是我的代码:
html
<div *ngFor="let price of prices">
{{prices}}
</div>
service.ts
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-zec')
.map((response: Response) => response.json());
}
}
interface
export class MarketViewModel {
public success : boolean;
public message : string;
public result : MarketListObject[];
}
export class MarketListObject {
public MarketName : string;
public High : number;
public Low : number;
public Volume : number;
public Last : number;
public BaseVolume : number;
public TimeStamp : number;
public Bid : number;
public Ask : number;
public OpenBuyOrders : number;
public OpenSellOrders : number;
public PrevDay : number;
public Created : number;
}
component.ts
import { Component, OnInit } from '@angular/core';
import { Http, Response, Headers } from '@angular/http';
import { BittrexService } from '../../bittrex/bittrex.service';
import {Observable} from "rxjs";
@Component({
selector: 'app-comprarzec',
templateUrl: './comprarzec.component.html',
styleUrls: ['./comprarzec.component.scss']
})
export class ComprarzecComponent implements OnInit {
private prices = [];
constructor(private bittrexService: BittrexService) {
this.bittrexService = bittrexService;
}
ngOnInit(){
this.bittrexService.getPrices()
.subscribe(
data => this.prices = data.result
);
}
}
替换为:
<div *ngFor="let price of prices">
High : {{price.High}} , Low : {{price.Low}}
</div>
您正在尝试打印对象数组 prices
,
应该是 price
而不是 prices
High : {{price.High}} , Low : {{price.Low}}
像这样你可以访问任何给定的值:
{
"MarketName": "BTC-ZEC",
"High": 0.16290000,
"Low": 0.13087156,
"Volume": 12760.98721068,
"Last": 0.15650003,
"BaseVolume": 1908.20341779,
"TimeStamp": "2017-06-14T19:15:25.57",
"Bid": 0.15650003,
"Ask": 0.15786551,
"OpenBuyOrders": 1130,
"OpenSellOrders": 1257,
"PrevDay": 0.13380000,
"Created": "2016-10-28T17:13:10.833"
}