2016-10-28 32 views
5

Tôi nhận được một tập tin JSON từ một api,* ngFor trên đối tượng angular2

như bạn có thể thấy có một đối tượng bên trong một đối tượng được gọi là "lãi" unfortantly * ngFor có thể đi bộ qua chỉ mảng. Tôi đang tìm kiếm một cái gì đó mà tôi có thể nhận được "Key" và "Giá trị" như

for(var var in obj) 

ví dụ được tiếp cận với "AUD: 0,41852"

{ 
"base":"BRL",s 
"date":"2016-10-27", 
"rates":{ 
"AUD":0.41852, 
"BGN":0.57085, 
"CAD":0.42629, 
"CHF":0.31634, 
"CNY":2.1623, 
"CZK":7.8871, 
"DKK":2.1709, 
"GBP":0.26023, 
"HKD":2.4734, 
"HRK":2.1894, 
"HUF":90.257, 
"IDR":4156.5, 
"ILS":1.2256, 
"INR":21.311, 
"JPY":33.388, 
"KRW":364.6, 
"MXN":5.9721, 
"MYR":1.3381, 
"NOK":2.6227, 
"NZD":0.44646, 
"PHP":15.465, 
"PLN":1.2636, 
"RON":1.3146, 
"RUB":20.025, 
"SEK":2.8648, 
"SGD":0.44397, 
"THB":11.191, 
"TRY":0.98786, 
"USD":0.31893, 
"ZAR":4.4196, 
"EUR":0.29188 
} 

}

đây là mã của tôi, đối tượng tỷ lệ phải nằm trong "mục ion" mới nhất

currency.html

<ion-header style="direction:rtl;"> 
    <ion-navbar> 
    <ion-title> 
     המרת מטבע 
    </ion-title> 
    </ion-navbar> 
</ion-header> 
<ion-content padding style="direction:rtl;"> 
    <ion-list> 
    <ion-item> 
     <ion-label>בחר מטבע:</ion-label> 
     <ion-select okText="אשר" cancelText="בטל" [(ngModel)]="selectCurrencyInput"> 
     <ion-option value="BGN">BGN</ion-option> 
     <ion-option value="BRL">BRL</ion-option> 
     <ion-option value="CAD">CAD</ion-option> 
     <ion-option value="CHF">CHF</ion-option> 
     <ion-option value="CNY">CNY</ion-option> 
     <ion-option value="CZK">CZK</ion-option> 
     <ion-option value="DKK">DKK</ion-option> 
     <ion-option value="GBP">GBP</ion-option> 
     <ion-option value="HKD">HKD</ion-option> 
     <ion-option value="HRK">HRK</ion-option> 
     <ion-option value="HUF">HUF</ion-option> 
     <ion-option value="IDR">IDR</ion-option> 
     <ion-option value="ILS">ILS</ion-option> 
     <ion-option value="INR">INR</ion-option> 
     <ion-option value="JPY">JPY</ion-option> 
     <ion-option value="KRW">KRW</ion-option> 
     <ion-option value="MXN">MXN</ion-option> 
     <ion-option value="MYR">MYR</ion-option> 
     <ion-option value="NOK">NOK</ion-option> 
     <ion-option value="NZD">NZD</ion-option> 
     <ion-option value="PHP">PHP</ion-option> 
     <ion-option value="ZAR">ZAR</ion-option> 
     <ion-option value="PLN">PLN</ion-option> 
     <ion-option value="RON">RON</ion-option> 
     <ion-option value="RUB">RUB</ion-option> 
     <ion-option value="SEK">SEK</ion-option> 
     <ion-option value="SGD">SGD</ion-option> 
     <ion-option value="THB">THB</ion-option> 
     <ion-option value="TRY">TRY</ion-option> 
     <ion-option value="USD">USD</ion-option> 
     </ion-select> 
    </ion-item> 
    <ion-item> 
     <ion-label>כמות לחישוב</ion-label> 
     <ion-input #amountCurrencyInput type="text"></ion-input> 
    </ion-item> 
    <button ion-button (click)="calc({selectedCurrency:selectCurrencyInput,amountCurrency:amountCurrencyInput.value})"> 
     חשב מטבע 
    </button> 
    </ion-list> 
    <ion-list *ngIf="load" inset> 
    <h2>שער המטח נכון להיום: <span>{{results.date}}</span></h2> 
    <h3>המטבע הנבחר: {{results.base}}</h3> 
    <ion-item> 
     <!-- Object should run here.--> 
    </ion-item> 
    </ion-list> 
</ion-content> 

currency.ts

import {Component} from '@angular/core'; 
import {NetworkServices} from '../../services/network'; 


@Component({ 
    selector: 'currency-page', 
    templateUrl: 'currency.html', 
    providers: [NetworkServices] 
}) 
export class CurrencyPage { 
    public load: any; 
    public results: any; 

    constructor(public networkServices: NetworkServices) { 
    this.load = false; 
    } 

    calc(details) { 
    this.networkServices.getCurrency(details).then((result) => { 
     this.load = true; 
     this.results = result; 
    }); 
    } 
} 

thx các bạn :)

Trả lời

7

* ngFor không có nghĩa là sẽ được sử dụng chống lại những vật nhưng bạn có thể làm việc này bằng cách sử dụng Object.keys, Hãy thử điều này có lẽ

+4

Điều này có thể là giải pháp thú vị nhất cho vấn đề này, nhưng bạn phải để lộ 'Object 'cho khung nhìn để làm cho nó hoạt động:' private JSObject: Object = Object; 'và sử dụng nó như sau:' cho khóa của JSObject.keys (yourObject) ' – Zahema

0

cũng sẽ hoạt động.

0

Bạn có thể sử dụng một phương pháp trên thành phần của bạn để trích ra phần phím hoặc một ống tái sử dụng

@Pipe({name: 'keys'}) 
export class KeysPipe implements PipeTransform { 
    transform(value) : any { 
    if(!value) { 
     return null; 
    } 
    return Object.keys(value); 
    } 
} 
<div *ngFor="let key of someObject | keys">{{someObject[key]}}</div> 
Các vấn đề liên quan