Очень плохо знаком с angular (и с laravel), поэтому, пожалуйста, потерпите меня.
Моя цель - создать поле поиска на глобальной навигационной панели и отобразить результаты поиска на странице поиска. Просто, я думаю.
У меня есть функция onSubmit на моем navbar.ts, отправляющая входные данные поиска через службу в виде запроса к серверу. Все кажется успешным в бэкэнде, и я собираю и подписываюсь на ответ с возвращенными данными, идущими в отдельную функцию handleResponse, все еще в navbar.ts:
handleResponse(data) {
this._InteractionService.sendMessage(data);
this.Router.navigateByUrl('/search-page');
}
Вот _InteractionService:
private _searchResults = new Subject();
searchResultsOb$ = this._searchResults.asObservable();
sendMessage(message: string) {
this._searchResults.next(message);
}
И, наконец, вот получатель, компонент поисковой страницы:
ngOnInit() {
this._InteractionService.searchResultsOb$.subscribe(
message => this.handleSearch(message)
)}
handleSearch(search) {
if (search[1][0] === undefined) {
this.searchResult = 'Não existem artistas com esse nome.'
} else {
this.searchResult = search[1][0].nome;
}
Если я нахожусь на URL поисковой страницы, я могу заставить его работать нормально. Но если я нахожусь на домашней странице, странице входа или любом другом компоненте, запрос не отобразит html через свойство searchResult. Я могу получить это к console.log просто отлично, хотя.
Что я делаю не так, ребята? Заранее спасибо!