Byłem ciekawy, czy mogę uzyskać właściwości elementu z szablonu komponentu. Więc zrobiłem prosty div z klasą i zrobiłem tę klasę:Otrzymywanie wysokości elementu
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()
są od BrowserDomAdapter. Mój problem polega na tym, że kiedy próbuję uzyskać wysokość, jest to null
, ale kiedy ustawię wysokość o setStyle()
, a następnie otrzymam ją przez getStyle()
, zwróci ona prawidłową wartość. Po sprawdzeniu DOM i stylów w przeglądarce odkryłem, że jest to spowodowane dwoma elementami CSS. Jedna to: .view-main-screen[_ngcontent-aer-1]{}
, a druga to element{}
. .view-main-screen
ma kilka stylów, ale element jest pusty. Po dodaniu stylów przez setStyle()
pojawia się w element{}
. Dlaczego? Jak mogę uzyskać właściwości elementu za pomocą Angular2?
Okey, ale jak mogę z niego korzystać?Próbuję zaimportować Linijkę lub Prostokąt, ale kompilator zgłasza błąd. W każdym razie, dzięki za odpowiedź! – Arth
Nie wiem o imporcie TS, używam tylko Dart. Jedyne miejsce, w którym go znalazłem, to https://github.com/angular/angular/blob/3c8fa8c50d820e3317bc40292c73df03c8b23e86/modules/angular2/test/platform/browser/ruler_spec.ts –
Zobacz także https://github.com/angular/angle/issues/6515 # issuecomment-173353649 –