2017-05-01 21 views
0
私はサービスと私のテンプレート照会ionic2

イオン2 Angularfire2及び配列

に変数配列にfirebase観測可能なリストを追加したい

にFirebaseアイテム:私は私のTSにgetModelサービスを呼び出す

getModel(model){ 

    let modelQuery = this.afo.database.list(this.currentUser.username + '/models', { 
     query: { 
      orderByChild: 'name', 
      equalTo: model 
     } 
    }); 

    return modelQuery; 
} 

this.character = navParams.get('character'); 
this.currentUser = modelService.currentUser; 
this.models = modelService.models; 
this.model = modelService.getModel(this.character.model); 
this.items = this.model; 

と私は私のページのデータを解析:

<ion-item *ngFor="let item of items | async"> 
    {{ item?.items | json }} 
</ion-item> 

と結果は次のとおりです。

result

私firebase:

enter image description here

私の問題がある:私は次のように私のアイテム変数にこの観察可能なリストに追加したい

アレイ。 私は私の項目のためのngforを使用すると、私はそう、私はngforで表示するように私の変数項目で、この配列を追加したい配列

[ 
{ 
    "name": "description", 
    "rows": "3", 
    "type": "ion-textarea" 
}, 
{ 
    "name": "toggle", 
    "type": "ion-toggle" 
}, 
{ 
    "max": 100, 
    "min": 0, 
    "name": "range test", 
    "type": "ion-range", 
    "value": 0 
}, 
{ 
    "max": 80, 
    "min": 0, 
    "name": "range 2", 
    "type": "ion-range", 
    "value": 0 
}, 
{ 
    "max": 50, 
    "min": 0, 
    "name": "range 3", 
    "type": "ion-range", 
    "value": 0 
}, 
{ 
    "name": "azeazraze", 
    "type": "ion-input" 
}, 
{ 
    "name": "ertefer", 
    "type": "ion-title" 
}, 
{ 
    "name": "ghg", 
    "type": "ion-title" 
} 
] 

内のオブジェクトとインライン結果を持っています。

+0

私のページに、このdata.itemを取得する必要がありますか? –

+0

はい、firebase/user/model/itemsにchikdノードを持ち、配列のように表示したい –

+0

_a lot of_ '* ngIf'sで精巧なテンプレートを作成する必要があります。 Ionicは、テンプレートのサーバー側のレンダリングを実質的にサポートしていません。 –

答えて

0

[コード] getModel(モデル){

せmodelQuery = this.afo.database.list(this.currentUser.username + '/モデル'、{

クエリ:{ orderByChild '名前」、 equalTo:モデル

}}).map((items) => { 
    return items.map(item => { 
    item.data = this.afo.database.list(this.currentUser.username + `/models/${model.items}`); 
    console.log("item",item); 

    return item; //need this data item in variable 
    }) 
}) 

リターンmodelQuery

} [/コード]

私は、このマップを使用するので、私はあなたがあなたのArrayListに基づいてテンプレートにイオン成分を_show_したいわけ

1
A small modification to your query to get items array. 

getModelItems (model) { 

    let items = [] 

    let modelQuery = this.afo.database.list(this.currentUser.username + '/models', { 

     query: { 
     orderByChild: 'name', 
     equalTo: model 
     } 
    }).subscribe(models => { 
     items = []; 
     models.forEach(model => { 
     items.push(model.items); 
     }) 
    }); 

    console.log("model query"); 
    console.log(modelQuery); 
    return items; 
} 
関連する問題