2017-05-01 82 views
0

我想火力觀察的名單中ionic2離子2 Angularfire2和火力地堡項目陣列

我查詢我的模板與服務添加到變量數組:

getModel(model){ 

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

    return modelQuery; 
} 

我打電話getModel服務於我的TS:

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

我的火力點:

enter image description here

我的問題是:

我想加入到這個觀察的名單在我的項目變量像陣列。 當我使用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" 
} 
] 

所以我想在我的可變項添加此陣與ngfor,以顯示與對象內嵌的結果。

+0

你的意思是你要根據你的ArrayList在模板_show_離子成分? –

+0

是的,我想要在firebase/user/model/items上使用chikd節點並將它顯示爲一個數組 –

+0

您將不得不使用_a很多__ * ngIf'來製作精緻的模板。 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

} [/代碼]

我用這個地圖,所以我需要找回這種data.item到我的網頁

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; 
}