2017-08-13 8 views
1

に基づいてデータ・セットに分類し、私は成功したJSONにXML応答を変換したが、日付のセットに応答を分類するために苦労しています。角度2列:私は、このデータソース <a href="http://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml" rel="nofollow noreferrer">http://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml</a></p> <p>をループにしようとしているユーザの入力

基本的に私は配列をループしようとしています。ユーザーが配列に存在する日付を入力した場合は、それぞれのデータセット(インデックス)のみを使用します。

例えば、ユーザーはこの日付 "20170811" を選択した場合、その後私はここに私のコード // TS

this.forexDataService.getData().then((data) => { 
this.data = data; 
for(var i = 0; i < this.data.length; i++){ 
    this.time = this.data[i].time; 
    console.log(this.time); 
} 
}); 

// HTML

<ion-list> 
    <ion-item> 
     <ion-label>Date</ion-label> 
     <ion-select [(ngModel)]="Date" (ionChange)='date($event)' name="date"> 
      <ion-option *ngFor="let item of data" [value]="item.time">{{item.time}}</ion-option> 
     </ion-select> 
    </ion-item> 
</ion-list> 
が "20170811"

のために(通貨、金利)データセットをしたいですこの場合

// JSONサンプル

{ 
    "docs": [ 
    { 
     "time": "20170811", 
     "Cube": [ 
     { 
      "currency": "USD", 
      "rate": "1.1765" 
     }, 
     { 
      "currency": "JPY", 
      "rate": "128.41" 
     }, 
     { 
      "currency": "BGN", 
      "rate": "1.9558" 
     }, 
     { 
      "currency": "CZK", 
      "rate": "26.155" 
     }, 
     { 
      "currency": "DKK", 
      "rate": "7.437" 
     }, 
     { 
      "currency": "GBP", 
      "rate": "0.90645" 
     }, 
     { 
      "currency": "HUF", 
      "rate": "305.41" 
     }, 
     { 
      "currency": "PLN", 
      "rate": "4.2888" 
     }, 
     { 
      "currency": "RON", 
      "rate": "4.5778" 
     }, 
     { 
      "currency": "SEK", 
      "rate": "9.6083" 
     }, 
     { 
      "currency": "CHF", 
      "rate": "1.132" 
     }, 
     { 
      "currency": "NOK", 
      "rate": "9.3975" 
     }, 
     { 
      "currency": "HRK", 
      "rate": "7.3982" 
     }, 
     { 
      "currency": "RUB", 
      "rate": "70.6275" 
     }, 
     { 
      "currency": "TRY", 
      "rate": "4.1765" 
     }, 
     { 
      "currency": "AUD", 
      "rate": "1.4962" 
     }, 
     { 
      "currency": "BRL", 
      "rate": "3.7378" 
     }, 
     { 
      "currency": "CAD", 
      "rate": "1.4956" 
     }, 
     { 
      "currency": "CNY", 
      "rate": "7.8414" 
     }, 
     { 
      "currency": "HKD", 
      "rate": "9.1992" 
     }, 
     { 
      "currency": "IDR", 
      "rate": "15722.96" 
     }, 
     { 
      "currency": "ILS", 
      "rate": "4.2171" 
     }, 
     { 
      "currency": "INR", 
      "rate": "75.496" 
     }, 
     { 
      "currency": "KRW", 
      "rate": "1346.47" 
     }, 
     { 
      "currency": "MXN", 
      "rate": "21.1711" 
     }, 
     { 
      "currency": "MYR", 
      "rate": "5.0531" 
     }, 
     { 
      "currency": "NZD", 
      "rate": "1.6149" 
     }, 
     { 
      "currency": "PHP", 
      "rate": "60.033" 
     }, 
     { 
      "currency": "SGD", 
      "rate": "1.6052" 
     }, 
     { 
      "currency": "THB", 
      "rate": "39.107" 
     }, 
     { 
      "currency": "ZAR", 
      "rate": "15.8741" 
     } 
     ] 
    }, 
    { 
     "time": "20170810", 
     "Cube": [ 
     { 
      "currency": "USD", 
      "rate": "1.1732" 
     }, 
     { 
      "currency": "JPY", 
      "rate": "128.76" 
     }, 
     { 
      "currency": "BGN", 
      "rate": "1.9558" 
     }, 
     { 
      "currency": "CZK", 
      "rate": "26.157" 
     }, 
     { 
      "currency": "DKK", 
      "rate": "7.4381" 
     }, 
     { 
      "currency": "GBP", 
      "rate": "0.90303" 
     }, 
     { 
      "currency": "HUF", 
      "rate": "305.37" 
     }, 
     { 
      "currency": "PLN", 
      "rate": "4.2717" 
     }, 
     { 
      "currency": "RON", 
      "rate": "4.5743" 
     }, 
     { 
      "currency": "SEK", 
      "rate": "9.568" 
     }, 
     { 
      "currency": "CHF", 
      "rate": "1.1341" 
     }, 
     { 
      "currency": "NOK", 
      "rate": "9.3355" 
     }, 
     { 
      "currency": "HRK", 
      "rate": "7.4008" 
     }, 
     { 
      "currency": "RUB", 
      "rate": "70.2875" 
     }, 
     { 
      "currency": "TRY", 
      "rate": "4.1462" 
     }, 
     { 
      "currency": "AUD", 
      "rate": "1.4888" 
     }, 
     { 
      "currency": "BRL", 
      "rate": "3.7024" 
     }, 
     { 
      "currency": "CAD", 
      "rate": "1.4923" 
     }, 
     { 
      "currency": "CNY", 
      "rate": "7.8068" 
     }, 
     { 
      "currency": "HKD", 
      "rate": "9.168" 
     }, 
     { 
      "currency": "IDR", 
      "rate": "15670.45" 
     }, 
     { 
      "currency": "ILS", 
      "rate": "4.2182" 
     }, 
     { 
      "currency": "INR", 
      "rate": "75.208" 
     }, 
     { 
      "currency": "KRW", 
      "rate": "1341.21" 
     }, 
     { 
      "currency": "MXN", 
      "rate": "21.0547" 
     }, 
     { 
      "currency": "MYR", 
      "rate": "5.0348" 
     }, 
     { 
      "currency": "NZD", 
      "rate": "1.6142" 
     }, 
     { 
      "currency": "PHP", 
      "rate": "59.567" 
     }, 
     { 
      "currency": "SGD", 
      "rate": "1.6" 
     }, 
     { 
      "currency": "THB", 
      "rate": "39.021" 
     }, 
     { 
      "currency": "ZAR", 
      "rate": "15.674" 
     } 
     ] 
    } 
    ] 
} 
+0

が常に特定の日付を持つただ一つのオブジェクトが存在するが、私はそう思いますか? – Alex

+0

はい、それらはすべて固有の指定日です – eohdev

答えて

2

私はそこのデータに基づいて、引き受けます特定の日付のオブジェクトは常に1つだけです。

次に、find()を使用してそのオブジェクトを取得し、その特定の日付のratecurrencyを表示するだけで簡単に使用できます。

だからあなたselectは同じままで、変更イベントは次のようになります。

date(date) { 
    this.filteredDate = this.data.find(x => x.time === date); 
} 

次にテンプレートで、我々は今filteredDateの財産である配列Cube、の内容を表示することができます。もちろんifを設定し、一致するオブジェクトがない場合はリストが表示されないようにする必要があります。したがって、このような何か:

<ion-list *ngIf="filteredDate"> 
    <ion-item *ngFor="let item of filteredDate.Cube"> 
    Currency: {{item.currency}}, Rate: {{item.rate}} 
    </ion-item> 
</ion-list> 

はDEMO:http://plnkr.co/edit/1xwhtwB5YjKHDbRzusHP?p=preview

+1

ありがとう、これは – eohdev

+0

聞いてうれしい! :) – Alex

関連する問題

 関連する問題