大佬教程收集整理的这篇文章主要介绍了angular2手动点击特定元素上的点击事件,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<form [ngFormModel]="imgUploadFrm" (ngSubmit)="onSubmit(imgUploadFrm)"> <br> <div class="input-field"> <input type="file" id="imgFile" (click)="onChange($event)" > </div> <button id="btnAdd" type="submit" (click)="showImageBrowseDlg()" )>Add Picture</button> </form>
这里当用户点击btnAdd它应该触发imgFile上的点击事件
代替
this.renderer.invokeElementMethod( this.fileInput.nativeElement,'dispatchEvent',[event]);
使用
this.fileInput.nativeElement.dispatchEvent(event);
因为invokeElementMethod不再是渲染器的一部分.
Angular2
使用ViewChild与模板变量来获取对文件输入的引用,然后使用Renderer调用dispatchEvent来触发事件:
import { Component,Renderer,ElementRef } from '@angular/core'; @Component({ ... template: ` ... <input #fileInput type="file" id="imgFile" (click)="onChange($event)" > ...` }) class MyComponent { @ViewChild('fileInput') fileInput:ElementRef; constructor(private renderer:renderer) {} showImageBrowseDlg() { // from https://stackoverflow.com/a/32010791/217408 let event = new MouseEvent('click',{Bubbles: truE}); this.renderer.invokeElementMethod( this.fileInput.nativeElement,[event]); } }
更新
由于Angular团队不再劝阻直接的DOM访问,所以也可以使用更简单的代码
this.fileInput.nativeElement.click()
参见https://developer.mozilla.org/de/docs/Web/API/EventTarget/dispatchEvent
以上是大佬教程为你收集整理的angular2手动点击特定元素上的点击事件全部内容,希望文章能够帮你解决angular2手动点击特定元素上的点击事件所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。