Вы можете использовать угловой EventEmitter
. Когда пользователь нажимает триггер на поиск, вы можете отправить событие другим компонентам вместе со значением this.search
, введенным пользователем. А в вашем home component.ts вы можете прослушать событие и проверить, возвращает ли он данные (которые являются поисковым значением), тогда вы можете вызвать downloadRecentSearches()
и передать значение, возвращаемое событием.
для получения дополнительной информации о взаимодействии компонентов в angular, вы можете проверить их документацию здесь
пример:
shared.service.ts
import { Output, EventEmitter } from '@angular/core';
@Output() search: EventEmitter<string> = new EventEmitter();
searchChanged(value) {
this.search.emit(value);
}
search.component.ts
import { HostListener } from '@angular/core';
@HostListener('change')
onSearch() {
this.sharedService.searchChanged(this.search)
}
home.component.ts
constructor() {
this.eventListener();
}
eventListener() {
this.sharedService.search.subscribe((searchValue) => {
console.log(searchValue) // value of the inputted by user
// do your logic here
})
}