首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图区分“[对象对象]”的Angular4错误

试图区分“[对象对象]”的Angular4错误
EN

Stack Overflow用户
提问于 2017-06-15 18:13:20
回答 2查看 30.2K关注 0票数 1

我试图在dom中显示一些信息,但是我得到了以下错误:

错误:试图区分“对象”的错误

我想要做的是迭代来自https://www.surbtc.com/api/v2/markets/btc-clp/ticker的这些数据

{“last_price”:{“1771455.0”、“中电”、"min_ask":"1771432.0“、”中电“、"max_bid":"1660003.0”、“中电”、“卷”:“178.37375119”、"BTC“、"price_variation_24h":"-0.107”、"price_variation_7d":"-0.115"}}

我想在html中这样显示它:

代码语言:javascript
复制
<div *ngFor="let price of prices">
    {{price.min_ask}}
    </div>

这是service.ts:

代码语言:javascript
复制
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 { SurbtcMarket } from './surbtcmarket'


@Injectable()
export class SurbtcService {

  constructor(private http: Http, private surBtcMarket : SurbtcMarket) { }

  public getPricess() :Observable<SurbtcMarket> {
    return this.http.get('https://www.surbtc.com/api/v2/markets/btc-clp/ticker')
    .map((response: Response) => response.json());
  }

}

接口surbtcmarket.ts

代码语言:javascript
复制
export class SurbtcMarket {
public ticker: SurbtcMarketView[];
}

export class SurbtcMarketView {
  public last_price : number;
  public min_ask : number;
  public max_bid : number;
  public volume : number;
  public price_variation_24h : number;
  public price_variation_7d : number;
}

component.ts

代码语言:javascript
复制
import { Http, Response, Headers } from '@angular/http';
import { SurbtcService } from '../../surbtc/surbtc.service';
import {Observable} from "rxjs";

@Component({
  selector: 'app-comprarltc',
  templateUrl: './comprarltc.component.html',
  styleUrls: ['./comprarltc.component.scss']
})
export class ComprarltcComponent implements OnInit {

  private prices = [];

  constructor(private surbtcService: SurbtcService) {
    this.surbtcService = surbtcService;
  }

ngOnInit(){
  this.surbtcService.getPricess()
  .subscribe(
    data => this.prices = data.ticker
  );
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-15 20:26:24

如果希望将price作为数组,则在prices数组中有push对象。

代码语言:javascript
复制
ngOnInit(){
  this.surbtcService.getPricess()
  .subscribe(
    data => this.prices.push(data.ticker);
  );
}

或者,您可以通过将data.ticker分配给prices直接访问对象属性。

代码语言:javascript
复制
private prices = new SurbtcMarketView();

constructor(private surbtcService: SurbtcService) {

}
ngOnInit(){
   this.surbtcService.getPricess()
        .subscribe(data =>{
            this.prices = data.ticker;
        });
}

HTML:

代码语言:javascript
复制
<div *ngFor="let item of prices.min_ask">
  {{item}}
</div>

更新:

请参阅Plnkr 演示,我已经解决了在解析json响应时导致错误的问题。

票数 2
EN

Stack Overflow用户

发布于 2019-06-04 07:24:59

否则你也可以用这个,

代码语言:javascript
复制
prices : SurbtcService[] = [];

然后您可以将用户对象推送到数组中,

代码语言:javascript
复制
this.prices.push(<<the data you want to push>>);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44574249

复制
相关文章

相似问题

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