Да.
<span [ngClass]="getdetail('BTC')" class="bold1">{{ coins }}</span>
Это проблема.ngClass
пытается установить значение string
для class
.(Таким образом, вы можете применить CSS).Это не то, что вы пытаетесь сделать, вы пытаетесь получить все монеты и затем отобразить их.
Способ сделать это так:
datainfo: Observable<any>;
coins:any;
constructor(public navCtrl: NavController, public navParams: NavParams, public http: HttpClient)
{}
// load the coins after the view is loaded, can also be done on ngOnInit
ionViewDidLoad(){
this.getDetail('BTC');
}
getdetail(coin) {
this.datainfo = this.http.get("https://min-api.cryptocompare.com/data/pricemultifull?fsyms="+coin+"&tsyms=USD");
this.datainfo
.map(res=>res)
.subscribe(data => {
this.coins = data
console.log('my data: ', this.coins);
});
}
И просто установить
<ion-content padding>
<div style="text-align: center;">
<!-- the ngIf directive will only show this span if `coins` is defined -->
<span *ngIf="coins" class="bold1">{{ coins }}</span>
</div>
</ion-content>
Если вы хотите создать больше монет, лучшая практикабудет, вероятно, следующим образом:
let coinList = ["BTC", "ETH", "LTE"];
constructor(/* ... */) {}
getDetail(coin): Observable<any> {
// don't subscribe, return Observable
this.http.get("...").map(res=>res);
}
И в вашем HTML
<ion-content padding>
<div style="text-align: center;">
<span *ngFor="let coin of coinList" class="bold1">
{{ getDetail(coin) | async }}
</span>
</div>
</ion-content>