固定要素をブラウザではなく親要素に基づいて配置したいと考えています。Angular2:親要素との関係で固定要素を配置する
マイテンプレート
<div class="main" style="position: relative">
<div style="position: absolute" positioningFromParent="left" [additionalPixels]=20>
...
</div>
</div>
マイAngular2指令
import { Directive, ElementRef, Input, OnInit } from "angular2/core"
@Directive({
selector: "[positioningFromParent]"
})
export class PositioningFromParent implements OnInit {
private el:HTMLElement
@Input() positioningFromParent: string = ""
@Input() additionalPixels: number = 0
constructor(el: ElementRef) {
this.el = el.nativeElement
}
ngOnInit() {
let v = this.el.parentNode.getBoundingClientRect()[this.positioningFromParent]
this.el.style[this.positioningFromParent] = (v + this.additionalPixels).toString() + "px"
}
}
しかし、それは私の主な要素の幅としては動作しません:私は、このようにangular2ディレクティブは(迅速かつ汚い)を設計しています動的に設定されています(指定できません)。 ngOnInit
が実行されると、幅が0になります。私はangle2で親の幅を「見守る」ことができますか?
おかげ