#angular #firebase #firebase-realtime-database #angularfire2
#angular #firebase #firebase-realtime-database #angularfire2
Вопрос:
Я работаю над проектом, использующим Angular2 с Angulafire2 / Firebase. Я могу без проблем извлекать списки и объекты, но когда я хочу отобразить страницу отдельного элемента с подробной информацией, я не могу «переключиться» на второй узел (для получения сведений об элементе), если запрошенный идентификатор отсутствует в первом. Я попробовал несколько подходов ‘if / else’ (вот один, в котором я пытаюсь подтвердить, что идентификатор имеет некоторое значение в ключе ‘title’), но все безрезультатно — приложение всегда распознает только один узел. Пожалуйста, кто-нибудь может посоветовать мне, как это исправить?
import { Component, OnInit } from '@angular/core';
import { AngularFire, FirebaseListObservable, FirebaseObjectObservable } from 'angularfire2';
import { ActivatedRoute } from '@angular/router';
import 'rxjs/add/operator/map';
@Component({
selector: 'app-item',
templateUrl: './item.component.html',
styleUrls: ['./item.component.less']
})
export class itemComponent implements OnInit {
item: FirebaseObjectObservable<any>;
constructor( private af:AngularFire, private route: ActivatedRoute) {
ngOnInit() {
this.route.params
.map( params => {
return params["id"]
})
.subscribe(id => {
const itemID = this.af.database.object(`items/${id}`, { preserveSnapshot: true })
itemID.subscribe(snapshot => {
if( snapshot.val().key !== null ) {
this.item = this.af.database.object(`items/${id}`);
} else {
this.item = this.af.database.object(`items01/${id}`);
}
});
})
}
}
Комментарии:
1. та же проблема, было ли у вас какое-либо решение для нее?