Angular指令中input无selectstart事件、label无select事件问题咨询
关于Angular指令中select/selectstart事件的疑问
我在使用Angular指令时发现一个现象:HTML input 控件能接收select事件,但始终收不到selectstart事件;而label控件能接收selectstart事件,却收不到select事件。已通过调试日志和断点验证该现象,想知道这是Angular的设计如此,还是存在Bug?
相关代码
Directive
import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core'; @Directive({ selector: '[appDateInput]', }) export class DateInputDirective { constructor(private el: ElementRef, private renderer: Renderer2) { console.log("S:" + this.el.nativeElement.selectionStart + " E:" + this.el.nativeElement.selectionEnd ); } @HostListener('selectstart', ['$event']) onSelectStart(event: KeyboardEvent): void { //event.preventDefault(); console.log("onSelectStart called"); console.log("S:" + this.el.nativeElement.selectionStart + " E:" + this.el.nativeElement.selectionEnd ); } @HostListener('select', ['$event']) onSelect(event: KeyboardEvent): void { //event.preventDefault(); console.log("onSelect called"); console.log("S:" + this.el.nativeElement.selectionStart + " E:" + this.el.nativeElement.selectionEnd ); } @HostListener('selectionchange', ['$event']) onSelectionChange(event: KeyboardEvent): void { //event.preventDefault(); console.log("onSelectionChange called"); console.log("S:" + this.el.nativeElement.selectionStart + " E:" + this.el.nativeElement.selectionEnd ); } }
HTML模板
<label appDateInput>Selection test</label> <form> <label for="fname">First name:</label> <input type="text" id="fname" name="fname" appDateInput><br><br> </form>
内容的提问来源于stack exchange,提问作者janci
相关产品推荐
相关产品推荐

