J'ai essayé d'effectuer un test pour l'application angulaire 2 qui clique sur un bouton d'envoi qui appelle une fonction. J'utilise généralement deux méthodes pour effectuer la même chose.Quelle est la différence entre le fichier nativeElement.click() et le clic du gestionnaire d'événements?
element.nativeElement.click()
et
element.triggerEventHandler('click',null);
Je pensais que ces deux méthodes étaient les mêmes, jusqu'à ce que je suis tombé sur cette situation où le déclenchement méthode de gestionnaire d'événements ne fonctionne pas.
element = fixture.debugElement.query(By.css('.dropList li'));
element.triggerEventHandler('click',null); //Click event works here
fixture.detectChanges();
let button = fixture.debugElement.query(By.css('button'));
//button.triggerEventHandler('click',null); //Does not call function
button.nativeElement.click(); //Calls function
fixture.detectChanges();
Modèle de référence:
<form (ngSubmit)="printSelection()">
<div class="dropList">
<ul>
<li *ngFor="let element of data.elements" (click)="selectElement(element)"> </li>
</ul>
</div>
<button type="submit">Submit</button>
</form>
Alors, y at-il une différence entre ces deux approches ou pensez-vous que je suis allé mal quelque part dans mon code?
Pouvez-vous ajouter un modèle de votre composant? – yurzui
@yurzui Added template ... – SanjuAus
Merci. Où est le 'bouton' dans votre template? – yurzui