@MOTORIST

Как получить динамический параметр роута в сервисе?

Angular 2
Можно получать в компоненте и передавать в методы сервиса, что не очень удобно.

В компоненте:
create() {
   this.route.paramMap.subscribe((params) => {
       this.service.cerate(params.get('id'));
   });
}

update() {
   this.route.paramMap.subscribe((params) => {
       this.service.update(params.get('id'));
   });
}


Можно создать провайдер, который будет создавать в компоненте экземляр сервиса с параметром. Тогда не нужно будет его в каждой функции прописывать.

В компоненте:
service: any;
  ngOnInit(): void {
     this.route.paramMap.subscribe((params) => {
          this.service = this.seviceProvider.factory(params.get('id'));
     }
  }

create() {
     this.service.cerate();
}


Может быть есть более изящное решение?
  • Вопрос задан
  • 203 просмотра
Пригласить эксперта
Ответы на вопрос 1
ozknemoy
@ozknemoy
яваскриптист
на динамику в любом случае подписываться надо будет и код не станет красивее/меньше. а вот на статику можно просто this.route.snapshot.queryParams['id'];
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы