Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Renderer2中的invokeElementMethod_Angular_Typescript_Angular Renderer2_Angular Renderer - Fatal编程技术网

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);
  }
}