I have an Iconic / Angular App which has a Filter Tab and then A list beneath. The idea is to go and emit an event when user changes the filter and then the List Page catches the emitted event and refreshes the data of the last from the Filter.
Here is the code i use on my Filter Page
export class TabsFilterListComponent implements OnInit {
filter = '';
@Input() filters: Array<ITabFilter>;
@Output() filterSelected: EventEmitter<IActiveTabFilter> = new EventEmitter<IActiveTabFilter>();
constructor() { }
ngOnInit(): void {
console.log(this.filters);
}
toggleFilter(filter: ITabFilter) {
this.filters.forEach(current => {
if (current.type !== filter.type) {
current.isOpened = false;
}
});
filter.isOpened = !filter.isOpened;
}
optionSelected(selected: IActiveTabFilter, filter: ITabFilter) {
// make sure not to emit event if filter was not changed
console.log(selected);
if (!(filter.selectedOption && filter.selectedOption.value === selected.option.value)) {
filter.selectedOption = selected.option;
// emit event
this.filterSelected.emit(selected);
console.log('emitted ', selected);
}
if (filter) {
filter.isOpened = false;
}
}
How and to what would i subscribe on my list to catch the emit event and how can get the selected value ?