Мне было любопытно, могу ли я получить свойства элемента из шаблона компонента. Поэтому я сделал простой div с классом, и я сделал этот класс:
export class viewApp{
elementView: any;
viewHeight: number;
myDOM: Object;
constructor() {
this.myDOM = new BrowserDomAdapter();
}
clickMe(){
this.elementView = this.myDOM.query('div.view-main-screen');
this.viewHeight = this.myDOM.getStyle(this.elementView, 'height');
}
}
getStyle()
, query()
взяты из BrowserDomAdapter.
Моя проблема в том, что когда я пытаюсь получить высоту, это null
, но когда я устанавливаю некоторую высоту на setStyle()
, а затем получаю ее с помощью getStyle()
, она возвращает правильное значение.
После проверки DOM и стилей в браузере я обнаружил, что это связано с двумя элементами CSS. Один из них: .view-main-screen[_ngcontent-aer-1]{}
, а второй - element{}
.
.view-main-screen
имеет несколько стилей, но элемент пуст. Когда я добавляю стили setStyle()
, он появляется в element{}
. Почему это? Как получить свойства элемента с помощью Angular2?