如何访问类指令

时间:2017-11-01 21:06:01

标签: angular typescript

SELECT * 
FROM table1 a
WHERE Column2 IN (SELECT mastercolumn2 
                  FROM mastertable)

在上面的代码中,我的问题是如果无处@Directive({ selector: '[myHighlight]' }) export class HighlightDirective { static test: number = 5; constructor(private el: ElementRef) { } highlight(color: string) { this.el.nativeElement.style.backgroundColor = color; } } 属性将导致Angular创建myHighlight类的实例,会发生什么。我的猜测是创建了HighlightDirective类本身(不是某个实例)。我对吗?如果是,我如何访问该课程

1 个答案:

答案 0 :(得分:0)

“创造一个阶级”的概念有点令人困惑。如果您的代码被转换为EcmaScript5,那么如果看起来像这样(简化):

var HighlightDirective = (function() {
  function HighlightDirective(el) {
    this.el = el;
  }
  HighlightDirective.test = 5;
  HighlightDirective.prototype.highlight = function() {
    this.el.nativeElement.style.backgroundColor = color;
  };
  return HighlightDirective;
)();

因此,在“类创建”方面 - 定义函数没有什么不同。

现在,当您需要具有此类的文件时 - 该函数将在JS运行时创建。

到目前为止,还没有Angular。

我不是Angular dev,但我认为除非需要,否则框架不会创建指令的实例。

至于“Angular如何将元素与此类关联的指令” - 您可以查看angular源代码。这个“如何”的问题对于SO格式而言过于宽泛