Angular 尝试使用对象属性访问文档信息
长期潜伏者,第一次询问者 我正在尝试学习angular 7,我正在制作一个crud应用程序,用于将大学足球队添加到数据库并检索数据。我正在使用google firestore作为数据库 我能够检索团队的id并将其存储在变量中,但在使用id检索文档,然后使用对象属性获取信息时遇到了问题。非常感谢您的帮助 firebase.service.tsAngular 尝试使用对象属性访问文档信息,angular,google-cloud-firestore,angular7,Angular,Google Cloud Firestore,Angular7,长期潜伏者,第一次询问者 我正在尝试学习angular 7,我正在制作一个crud应用程序,用于将大学足球队添加到数据库并检索数据。我正在使用google firestore作为数据库 我能够检索团队的id并将其存储在变量中,但在使用id检索文档,然后使用对象属性获取信息时遇到了问题。非常感谢您的帮助 firebase.service.ts import { Injectable } from '@angular/core'; import { AngularFirestore, Angular
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);
}
}
team-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() {
}
}
team-home.component.html
<p>
{{team.schoolName}}
</p>
<router-outlet></router-outlet>
当我运行应用程序并转到显示模板的页面时,除了app.component中的标题外,没有显示任何内容。再次感谢您的帮助。您需要将获取数据的部分代码放在构造函数内或ngOnInit()上,否则代码永远无法执行
constructor(
private router: Router,
private firebaseService: FirebaseService,
private actRoute: ActivatedRoute
) {
id = this.actRoute.snapshot.paramMap.get('id');
team = this.firebaseService.getTeam(this.id);
}
谢谢你的回复。尝试此操作时,会出现以下错误:
src/app/teams/teamhome/teamhome.component.ts中的错误(25,5):错误TS2304:找不到名称“id”。src/app/teams/team home/team home.component.ts(26,5):错误TS2304:找不到名称“team”。src/app/teams/team home/team home.component.ts(26,46):错误TS2339:类型“TeamHomeComponent”上不存在属性“id”。
constructor(
private router: Router,
private firebaseService: FirebaseService,
private actRoute: ActivatedRoute
) {
id = this.actRoute.snapshot.paramMap.get('id');
team = this.firebaseService.getTeam(this.id);
}