想要使用我的详细信息组件的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的价值......那有什么不对吗?
答案 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 { ... }