类型“ Directive”上没有属性“ element”。

时间:2019-02-18 10:25:32

标签: angular angular5

我遇到的错误属性'element'在'directive'上不存在。在这里,我正在尝试创建指令功能。

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

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

  constructor(element: ElementRef) {
    element.nativeElement.style.backgroundColor = 'brown';
    element.nativeElement.style.fontSize = '38px';
  }

  @HostListener('mouseenter') onmouseenter() {
    this.highlight('red');
  }
  @HostListener('mouseleave') onmouseleave() {
    this.highlight('yellow');
  }

  private highlight(color: string) {
    this.element.nativeElement.style.backgroundColor = color;
  }

}

2 个答案:

答案 0 :(得分:3)

您的构造函数参数目前仅可在构造函数内部访问,您需要添加以下访问修饰符关键字之一:DT <- fread("g1 g2 g3 var1 var2 var3 var4 var5 A 01/01/2019... -30 50 1000 1000 200 50 A 01/01/2019... -30 55 0 1000 400 50 A 01/01/2019... -30 57 0 1000 600 50 A 01/01/2019... -30 59 100 1100 800 50 A 01/01/2019... -30 70 0 1100 1000 50 A 01/01/2019... -30 77 0 1100 1200 59 A 01/01/2019... -30 91 200 1300 1400 91 A 01/01/2019... -30 93 250 1550 1600 93 A 01/01/2019... -30 95 0 1550 1800 93 A 01/01/2019... -30 99 450 2000 2000 99")[, var5 := NULL] privateprotected或{{1} }使其成为类字段:

public

答案 1 :(得分:1)

类名应与Directive

不同
export class CustomDirective{ }

并且在构造函数中进行初始化时,必须指定访问修饰符,例如publicprivate等,以便在该类的任何方法中使用它们。