Имеется 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, каким образом компонент открытый с помощью роутинга может наследовать информацию сервиса? К слову скажу что информация которую я передаю содержит сложный массив объектов.