How to call main component function from a child component when I have deep nested hierarchy?
I have 3 components, button component I'm including inside browser component and browser component I'm including inside main component.
On click of button I need to call a function which is inside main component.
Button Component
@Component({
selector: 'cb-button',
templateUrl: 'cb-button.component.html',
styleUrls: ['cb-button.component.scss']
})
export class CbButtonComponent {
@Output() onClick: EventEmitter<any> = new EventEmitter();
onBtnClick(): void {
this.onClick.emit();
}
}
button component html
<div (click)="onBtnClick()">
<button>btn</button>
</div>
browser component
@Component({
selector: 'topology-browser',
templateUrl: 'topology-browser.component.html',
styleUrls: ['topology-browser.component.scss']
})
export class TopologyBrowserComponent {
@Input('campus') campus: Campus;
}
browser component html
<div>
<h1>browser title</h1>
<cb-button (click)="editCampus()"></cb-button>
</div>
and finally in main component i'm including browser component
main-component.ts
editCampus() {
alert('clicked');
}
html
<topology-browser [campus]="campus"></topology-browser>
when I click button I'm getting below error
Errorself.parentView.context.editCampus is not a function