azovl
@azovl

Angular 6 как правильно передать данные сервиса с помощью роутинга?

Имеется shared service который обрабатывает и хранит определенные данные:
@Injectable({
  providedIn: 'root'
})

export class DataService {
  public filteredMovies: any;


В одном из компонентов я заполняю свойство this._moviesService.filteredMovies определенными данными.
После этого происходит перенаправление в другой компонент с помощью роутинга:
this.router.navigate(['/info/' + title + '/id/' + id]);


И уже внутри info компонента я пытаюсь получить данные filteredMovies из сервиса, но проблема в том что сервис имеет только предустановленные данные, filteredMovies свойство undefined:
import { Router } from '@angular/router';
import { ActivatedRoute } from '@angular/router';
...
  constructor(public _moviesService: MoviesService, private router: Router, private actRouter: ActivatedRoute) { }
...
 doSearch(id): void {
    // Здесь возникает ошибка (filteredMovies == undefined)
    this.asset = this._moviesService.filteredMovies[id];
 }

  ngOnInit() {
    this.actRouter.params.subscribe( params => this.doSearch(params['id']));
  }


Собственно вопрос вероятно в понимании того как работают shared services в Angular, каким образом компонент открытый с помощью роутинга может наследовать информацию сервиса? К слову скажу что информация которую я передаю содержит сложный массив объектов.
  • Вопрос задан
  • 559 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

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

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