Служба Angular 6 ActivatedRouteSnapshot Firebase - PullRequest
0 голосов
/ 11 июня 2018

хочу сохранить данные в firebase, используя Id моего компонента detail (pah: '/ Patient /: ID'

Чтобы сохранить данные, я написал это в data-service:

 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 голосов
/ 12 июня 2018

// 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 { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...