Попытка получить доступ к информации о документе, используя свойства объекта - PullRequest
2 голосов
/ 16 мая 2019

Долгое время скрывался, впервые спрашивал.

Я пытаюсь выучить угловой 7, и я делаю грубое приложение для добавления студенческих футбольных команд в базу данных и получения данных. Я использую Google Firestore для базы данных.

Я могу получить идентификатор команды и сохранить его в переменной, но у меня возникают проблемы с использованием идентификатора для получения документа, а затем с помощью свойств объекта для получения информации. Любая помощь очень ценится.

firebase.service.ts

import { Injectable } from '@angular/core';
import { AngularFirestore, AngularFirestoreCollection, AngularFirestoreDocument } from '@angular/fire/firestore';
import { Observable } from 'rxjs';   
import { Team } from '../team.model';

@Injectable({
  providedIn: 'root'
})
export class FirebaseService {

  constructor(public db: AngularFirestore) {
  }

  getTeam(id:string) {
    return this.db.doc('teams/' + id);
  }
}

команда-home.component.ts

import { Component, OnInit } from '@angular/core';
import { FirebaseService } from '../../shared/firebase.service';
import { ActivatedRoute, Router } from "@angular/router";
import { Team } from '../team.model';

@Component({
  selector: 'app-team-home',
  templateUrl: './team-home.component.html',
  styleUrls: ['./team-home.component.css']
})
export class TeamHomeComponent implements OnInit {

  constructor(
   private router: Router,
    private firebaseService: FirebaseService,
    private actRoute: ActivatedRoute
  ) { }

  id = this.actRoute.snapshot.paramMap.get('id');
  team = this.firebaseService.getTeam(this.id);

  ngOnInit() {

  }

}

Команда-home.component.html

<p>
  {{team.schoolName}}
</p>
<router-outlet></router-outlet>

team.model.ts

export class Team {
    id: string;
    schoolName: string;
    teamName: string;
    location: string;
    conference: string;
}

Когда я запускаю приложение и перехожу на страницу, где отображается шаблон, ничего не отображается, кроме заголовка из app.component. Опять же, любая помощь будет очень признательна.

1 Ответ

0 голосов
/ 16 мая 2019

Вам нужно поместить извлекаемый код части данных внутри конструктора или в ngOnInit () m, иначе код никогда не будет выполнен

constructor(
    private router: Router,
    private firebaseService: FirebaseService,
    private actRoute: ActivatedRoute
  ) { 
  id = this.actRoute.snapshot.paramMap.get('id');
  team = this.firebaseService.getTeam(this.id);
}
...