invokeElementMethod в Renderer2 angular
Посмотрите на эти фрагменты:
export class OnlyNumberDirective {
constructor(private _el: ElementRef,private renderer:Renderer2) {
}
@HostListener('input', ['$event']) onInputChange(e) {
this.renderer.invokeElementMethod(this._el.nativeElement, 'dispatchEvent', [event]);
}
}
он использует Renderer, но он устарел, и теперь у нас есть Renderer2.now. Можете ли вы сказать мне, как заменить код на invokeElementMethod?
2 ответа
Из руководства по миграции кажется, что следующая замена должна работать
(this._el.nativeElement as any)['dispatchEvent'].apply(this._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);
}
}