国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

詳解angular2如何手動點擊特定元素上的點擊事件

2019-11-19 12:41:31
字體:
來源:轉載
供稿:網友

我試圖在元素上編程點擊點擊事件(或任何其他事件),換句話說,我想知道在angular2中由jQuery .trigger()方法提供的類似功能.

有沒有內置的方法來做到這一點? …..如果不是,請建議我該怎么做

考慮以下代碼片段

<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上的點擊事件

Angular4

代替

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 http://stackoverflow.com/a/32010791/217408  let event = new MouseEvent('click', {bubbles: true});  this.renderer.invokeElementMethod(    this.fileInput.nativeElement, 'dispatchEvent', [event]); }}

更新

由于Angular團隊不再勸阻直接的DOM訪問,所以也可以使用更簡單的代碼

this.fileInput.nativeElement.click()

參見 https://developer.mozilla.org/de/docs/Web/API/EventTarget/dispatchEvent

代碼日志版權聲明:

翻譯自:http://stackoverflow.com/questions/36639486/angular2-manually-firing-click-event-on-particular-element

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 虞城县| 石狮市| 东丽区| 盈江县| 宿松县| 屏山县| 罗山县| 新泰市| 巧家县| 承德县| 潍坊市| 开化县| 和龙市| 类乌齐县| 河曲县| 寻甸| 富蕴县| 陕西省| 宁蒗| 江阴市| 贵南县| 麻城市| 甘孜| 清徐县| 北票市| 根河市| 元朗区| 大兴区| 突泉县| 金川县| 资阳市| 淅川县| 怀远县| 玉龙| 颍上县| 肇庆市| 南川市| 本溪| 浙江省| 沂南县| 义乌市|