angular - 访问主机绑定(bind) Angular2 中的下一个 Div

标签 angular angular2-directives

我想访问放置指令的下一个 div。

我的指令

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

@Directive({
  selector:'[tDropdown]'
})

export class DropdownDirective{

  @HostBinding('class.hidden') get opened(){
      return this.isOpen;
  }

  @HostListener('click') open(){
      this.isOpen = false ;
  }

  @HostListener('mouseleave') close(){
    this.isOpen = true;
  }

  private isOpen = true;

}

<div class="well box" tDropdown>
          <span>Group :-</span>{{entry.key}}
            <div> // access this div from the directive
              <table class="table">
                  <thead class="thead-inverse">
                  <tr>

如何从放置指令的元素访问后续的 div?

最佳答案

  class DropdownDirective {

    constructor(private elRef:ElementRef) {}

    ngAfterContentInit() {
      var div = this.elRef.nativeElement.querySelector('div')
      div.classList.add('hidden');
    }

如果要在父组件上做

@ViewChild(DropdownDirective, {read: ElementRef}) elRef:ElementRef;

click() {
  var div = this.elRef.nativeElement.querySelector('div')
  div.classList.add('hidden');
}

关于angular - 访问主机绑定(bind) Angular2 中的下一个 Div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42190068/

相关文章:

angular - Jasmine 测试无法识别函数 getCurrentNavigation() : this. router.getCurrentNavigation 不是函数

angular - 如何替换@viewChildren 中用于测试替身的组件?

angular - 如何以 Angular react 形式使用自定义验证器

javascript - 将外部 CSS 和 JS 链接添加到 Angular 2 中的组件

angular - ng-bootstrap datepicker 日历图标未显示

Angular 指令从元素中删除原始属性

Angular2 - 表单中的自定义指令不当行为

angular - 如何从angular2中的子组件更新父组件

javascript - Angular2 单击动态生成的元素

angular - 从 typescript 打开 Angular 垫日期选择器