3

我是编程新手。我已经尝试过这段代码,但@hostlistner 部分不起作用我使用了引导程序版本 4

它也没有给出任何编译错误

 element.nativeElement.style.color = 'red' 

该声明有效,但

 this.element.nativeElement.style.color = 'blue';

这个没有

      import { Directive, ElementRef, HostListener } from '@angular/core';

         @Directive({
          selector: '[setmycolor]'
           })
          export class SetmycolorDirective {

          constructor(private element:ElementRef) {
          element.nativeElement.style.color = 'red';
          }


          @HostListener('onmouseenter')onMouseEnter(){
          this.element.nativeElement.style.color = 'blue';
          }

          }

应用程序中的代码

4

2 回答 2

2

试试下面:

监听事件的名称是mouseenter,而不是onmouseenter。希望你明白了。:)

 import { Directive, ElementRef, HostListener } from '@angular/core';

         @Directive({
          selector: '[setmycolor]'
           })
          export class SetmycolorDirective {

          constructor(private element:ElementRef) {
          element.nativeElement.style.color = 'red';
          }


          @HostListener('mouseenter') onMouseEnter(){ //SEE HERE
          this.element.nativeElement.style.color = 'blue';
          }

          }
于 2019-05-01T14:10:15.380 回答
1

您的代码是正确的,只需将onmouseenter替换为mouseenter

@HostListener('mouseenter') onMouseEnter(){
          this.element.nativeElement.style.color = 'blue';
          }
于 2019-05-01T14:40:56.240 回答