这是我的Usercomponent.ts
export class UserComponent implements OnInit{
cards: Cardint[];
mySubscription: any;
constructor(public auth: AuthService , private arrayService: ArrayService, public cardService: CardService,private router: Router,) {
}
ngOnInit() {
this.cardService.getcards().subscribe( cards => {
this.cards=cards;
})
}
book='BookNow'
onUserClick(card)
{
this.arrayService.card = card;
}
}
这是我的Cardservice.ts
export class CardService {
cards: Observable<Cardint []>
cardCollection : AngularFirestoreCollection<Cardint>;
constructor(public afs: AngularFirestore) {
this.cards= this.afs.collection('cards').valueChanges();
}
getcards(){
return this.cards;
}
}
我的app-routing.module.ts
const routes: Routes = [
{ path: "", component: UserComponent},
{ path: "login", component: LoginComponent},
{ path: "signup", component: RegisterComponent},
{ path: "ticket", component: TicketComponent},
{ path: "user", component: UserComponent}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
问题:我正在使用cardservice从ngOnit方法的firebase获取数据(卡详细信息)。最初,我正在获取数据,但是当我导航到其他某个组件并返回时,不会获取数据。
我认为问题在于onInit方法,因为在组件创建时会调用一次。所以我想到了导航后重新加载或刷新组件(用户组件)。
建议解决此问题的方法。我对棱角非常陌生,如果有任何愚蠢的错误,请原谅。
与OnInit无关。这一切都与您的观察力有关。您有一个可观察到的高温,但请尝试将其用作冷态。您的代码应在this.afs.collection('cards').valueChanges()
发出下一个值后立即起作用。