Sam K
Sam K

Reputation: 408

How do I pass $event object from Angular TS file?

I have the below code which i am using to expand or collapse the elements

<div class="accordion" (click)="toggleAccordian($event, i)">

clickMenu(event: any, index: any) {
    var element = event.target;

    let elements = this.divElements.nativeElement.querySelectorAll('.sub');

    for (var i = 0; i < elements.length; i++) {
      elements[i].classList.remove('subactive');
    }

  }

Now i want to call clickMenu from ngInIt event. How do i pass $event

Upvotes: 1

Views: 57

Answers (1)

Naren Murali
Naren Murali

Reputation: 57986

You need to mock the element target, using ViewChild like so, static true is needed so that the view child is avaiable during ngOnInit hook itself!

HTML

<div class="accordion" (click)="toggleAccordian($event, i)" #accordion>

TS

@ViewChild('accordion', { static: true }) accordion!: ElementRef<any>;
...

ngOnInit() {
    this.clickMenu({target: accordion?.nativeElement} as any, 0);
}
...

...
clickMenu(event: any, index: any) {
    var element = event.target;

    let elements = this.divElements.nativeElement.querySelectorAll('.sub');

    for (var i = 0; i < elements.length; i++) {
      elements[i].classList.remove('subactive');
    }

}
...

Upvotes: 0

Related Questions