В 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-манипулирование компонентом в директиве?
Все это просто размытие в данный момент, поэтому я не уверен, что все правильно, и я уверен, что я не единственный.
Каковы правила манипуляции DOM в Angular2?