Angular Renderer2中的invokeElementMethod
上下文角度项目Angular Renderer2中的invokeElementMethod,angular,typescript,angular-renderer2,angular-renderer,Angular,Typescript,Angular Renderer2,Angular Renderer,上下文角度项目 我有以下片段: export class OnlyNumberDirective { constructor(private _el: ElementRef,private renderer:Renderer2) { } @HostListener('input', ['$event']) onInputChange(e) { this.renderer.invokeElementMethod(this._el.nativeElement, 'dispatch
我有以下片段:
export class OnlyNumberDirective {
constructor(private _el: ElementRef,private renderer:Renderer2) {
}
@HostListener('input', ['$event']) onInputChange(e) {
this.renderer.invokeElementMethod(this._el.nativeElement, 'dispatchEvent', [event]);
}
}
它使用渲染器,但它已被弃用,现在我们有了渲染器2在Renderer2中有什么方法可以替代invokeElementMethod方法?从中可以看出,以下替换应该可以工作
(此._el.nativeElement与任何一样)['dispatchEvent']。应用(此._el.nativeElement,[event]);
试试这个:
export class OnlyNumberDirective {
constructor(private _el: ElementRef) {
}
@HostListener('input', ['$event']) onInputChange(e) {
let event: Event = document.createEvent("Event");
event.initEvent('input', true, true);
Object.defineProperty(event, 'target', { value: this._el.nativeElement, enumerable: true });
this._el.nativeElement.dispatchEvent(event);
}
}