Angular 6 ActivatedRouteSnapshot服务Firebase

时间:2018-06-11 13:28:19

标签: angular firebase firebase-realtime-database snapshot

想要使用我的详细信息组件的ID保存firebase中的数据(pah:'/ patient /:id'

为了保存数据,我在数据服务中写了这个:

 createNewTumeur(newTumeur: Tumeur) 
 {
 const id = this.route.snapshot.params['id'];
 console.log(id);
 this.tumeurs.push(newTumeur);
 firebase.database().ref('/patients/'+id).child("tumeur").update(this.tumeurs);
 this.tumeurSubject.next(this.tumeurs);

但是我不能拥有id的价值......那有什么不对吗?

1 个答案:

答案 0 :(得分:0)



// my.component.ts

import { ActivatedRoute } from '@angular/router';
import { MyDataService } from './my-data.service';

constructor(private route: ActivatedRoute, private dataService: MyDataService)

createNewTumeur(newTumeur: Tumeur) {
  const id = this.route.snapshot.params['id'];
  console.log(id);
  this.dataService.createNewTumeur(id)
  // And then add the logic into your dataService
}




注意:您只能在组件中获取路由器参数,而不能在服务中获取。

这是因为服务是属于根注入器的单例。 您可以将路由参数发送到您的服务或在您的组件中提供您的服务(但是这将创建另一个服务实例,我个人不建议这样做。)



Component({
  ...
  providers: [MyDataService]
})
export class MyComponent { ... }