在Angular 1中,所有的DOM操作都应该在指令中完成,以确保正确的可测试性,但是在Angular 2中有何变化呢?
我一直在搜索关于在哪里放置DOM操作以及如何进行操作时的思考方式的好文章或任何信息,但每次都找不到。
以这个组件为例(实际上这是一个指令,但让我们假装它不是):
我一直在搜索关于在哪里放置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操作的规则是什么?
@ViewChild('whatever')
中引用的名称必须对应于模板标记中的#whatever
? - Konrad Viltersten