Как разрешить данные angularfire2 в маршруте? - PullRequest
0 голосов
/ 12 декабря 2018

Попытка разрешить некоторые данные из angularfire2 в моем маршрутизаторе.Когда я передаю return of('Hello Alligator!'), мой компонент регистрирует Hello Alligator, но когда я пытаюсь разрешить данные из службы angularfire, они просто зависают и никогда не разрешаются.Я также хотел бы установить это, где я все еще могу добавить к коллекции.Что я делаю не так?

//SmsListResolverService    

import {Resolve, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router'
import {Observable, of} from 'rxjs'
import { SMS } from './SMS.interface';
import {FirebaseService} from '../_shared/firebase.service'
import { Injectable } from '@angular/core';

import { AngularFirestore } from '@angular/fire/firestore';

@Injectable()
export class SmsListResolverService implements Resolve<Observable<any>>{
    constructor(private db:AngularFirestore){

    }
    resolve(){
        // this_works-----> return of('Hello Alligator!') 
        return this.db.collection('messages').valueChanges() //not this

    }
}


//Route module 
export const routes: Routes = [
  {
    path: 'chat',
    component: SmsComponent,
    resolve: { messages: SmsListResolverService }
 }
];

//component

export class SmsComponent{ 
  constructor(public sms: SmsService, private route:ActivatedRoute) {

    console.log(this.route.snapshot.data)
  }

1 Ответ

0 голосов
/ 12 декабря 2018

Как сказал Хавьер, вам нужно подписать ваше значениеChanges:

resolve(){
  // this_works-----> return of('Hello Alligator!') 
 this.db.collection('messages').valueChanges().subscribe((value: any) => {
   return value;
 });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...