javascript - Angular2 - 检查是否使用@HostListener 将新类添加到指令中

标签 javascript html angular

我有一个指令,我想检测 x 类是否添加到使用该指令的 DOM 元素中。例如,假设我有一个链接

<a myLink class="">A link</a>

然后,active 类从 javascript

添加到该元素
<a myLink class="active">A link</a>

我想在 MyLink 指令中检测这个类。我试过类似的东西

  @HostListener('class',['active'])
  onVisible(){
    console.log("Element active");
  }

但毫不奇怪,它不起作用。我如何使用 HostListener 或任何其他方式做到这一点?

最佳答案

@HostListener() 仅用于事件。

你可以像这样使用ngDoCheck

export class MyClass implements DoCheck {
  constructor(private elRef:ElementRef) {
    console.log('myClass');
  }

  ngDoCheck() {
    console.log('classList: ' + this.elRef.nativeElement.classList);
  }
}

Plunker example

另见 https://angular.io/docs/ts/latest/api/core/index/DoCheck-class.html

关于javascript - Angular2 - 检查是否使用@HostListener 将新类添加到指令中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41845117/

相关文章:

css - PrimeNG:p-inputNumber 的 CSS 背景

Angular 垫复选框 getElementById

angular - Angular CLI : 8. 2.2 中未显示 Font Awesome 图标,而是显示方 block

javascript - Accordion 中的 jqPlot 图

javascript - 如何获取选中的所有段落的id?

JavaScript 检查表单文本区域中的第一个单词

html - 使 div 在 div 下等宽

javascript - 从 JSON 生成带有 JS 的 HTML 页面

javascript - 不允许文本中出现 2 个空格 AngularJS

html - 如何根据条件在 td 上设置样式类