有一些类似的线程,但我找不到合适的答案 满足我的需求。因此,应该严格避免直接DOM访问 in angular2我只是想知道这是什么最佳实践。如何在Angular2中获取(DOM)元素的宽度
我想要实现的是基于当前宽度的元素大小。
workitemresize.component.ts
import { Directive, ElementRef, HostListener, Renderer, Input } from '@angular/core';
@Directive({
selector: '[workItemResize]'
})
export class WorkItemResizeDirective implements ngAfterViewInit {
private el: HTMLElement;
private renderer: Renderer;
constructor(el: ElementRef, public renderer: Renderer)
{
this.el = el.nativeElement;
this.renderer = renderer;
}
@HostListener('window:resize', ['$event.target'])
onResize()
{
this.resizeWorks();
}
ngAfterViewInit() {
this.resizeWorks();
}
private resizeWorks(): void {
this.renderer.setElementStyle(this.el, 'height', this.el.width); //
this.renderer.setElementStyle(this.el, 'height', '500'); //
}
}
projects.template.html
2016-08-22
kkern
+0
根据当前的声音调整大小,使声音像无限循环一样。 –
+0
不只是在初始化视图和window.resize之后 - 应该没事 –