我一直在嘗試爲角度2應用程序執行一個測試,點擊一個提交按鈕調用函數。我通常使用兩種方法來執行相同的操作。nativeElement.click()和事件處理程序的點擊之間有什麼區別?
element.nativeElement.click()
和
element.triggerEventHandler('click',null);
我認爲這兩種方法都是一樣的,直到我碰到這種情況下觸發事件處理方法不起作用來了。
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();
模板供你參考:
<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>
那麼,有沒有這兩種方法有什麼區別或者你認爲我可以在我的代碼出了問題的地方?
你可以添加組件的模板嗎? – yurzui
@yurzui添加了模板... – SanjuAus
謝謝。模板中的「按鈕」在哪裏? – yurzui