如何通过角度指令访问上一个同级?

时间:2018-08-22 12:39:56

标签: javascript angular typescript angularjs-directive frontend

此刻,我正在使用ELEMENTREF通过Redenrer2访问DOM。这是一个基本示例:

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

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

  constructor(private renderer: Renderer2, private el: ElementRef) {
    this.renderer.setStyle(this.el.nativeElement, 'background', 'yellow');
  }

}

上面的代码只是测试,使语法高亮显示为黄色。

但是,我需要知道如何访问上一个元素并捕获其宽度以移至左样式属性?

例如:前兄弟的宽度为400像素。当前元素的左侧为400px。

我指望这次合作。

1 个答案:

答案 0 :(得分:0)

您可以获取父元素:

let parent = this.renderer.parentNode(this.elementRef.nativeElement);

然后以某种方式选择他的孩子,也许给他们递增ID:

let sibling = parent.querySelector('#child5');

然后您拥有兄弟姐妹宽度:

let width = sibling.offsetWidth;

希望有帮助。