【发布时间】:2016-09-19 11:24:22
【问题描述】:
在 Angular 1 中,所有 DOM 操作都应该在指令中完成以确保适当的可测试性,但是 Angular 2 呢?这有什么变化?
我一直在寻找好的文章或任何关于在哪里放置 DOM 操作以及在操作时如何思考的信息,但每次都找不到。
以这个组件为例(这确实是一个指令,但我们假设它不是):
export class MyComponent {
constructor(private _elementRef: ElementRef) {
this.setHeight();
window.addEventListener('resize', (e) => {
this.setHeight();
});
}
setHeight() {
this._elementRef.nativeElement.style.height = this.getHeight() + 'px';
}
getHeight() {
return window.innerHeight;
}
}
例如,事件绑定是否属于构造函数,或者应该将其放在ngAfterViewInit 函数中还是其他地方?您是否应该尝试将组件的 DOM 操作分解为指令?
目前这一切都只是一个模糊,所以我不确定我是否正确地处理它,我确定我不是唯一一个。
Angular2 中 DOM 操作的规则是什么?
【问题讨论】: