#javascript #angular
#javascript #угловой
Вопрос:
Мне нужно получить ширину элемента DOM в пикселях.
Способ jQuery…
var myWidth = $('.labels').width();
Похоже, мне нужно получить ElementRef изнутри @Component
или Service
и получить доступ к width
свойству.
В нем также говорится, что, помимо соображений безопасности, он может связывать приложение и слои рендеринга, что предотвращает дальнейшее развертывание веб-работнику.
Итак, каков наилучший способ получить доступ к этой ширине div? Я работаю с изображением, которое заполняет его div по горизонтали. Я накладываю некоторые элементы и произвожу вычисление myHeight = aspectRatio * myWidth;
Во всех связанных вопросах, которые я вижу, упоминается, как это сделать, пока Angular2 все еще находился на стадии кандидата на выпуск. В стабильной версии (месяц и 4 дня на сегодняшний день) так много изменений в API, что я чувствую, что какой-то #deprecated
тег был бы полезен.
Комментарии:
1. Пожалуйста, убедитесь, что вы просмотрели все соответствующие свойства CSS, такие как
object-fit
. Велика вероятность, что они могут решить вашу проблему и избавить вас от необходимости выполнять вычисления вручную.
Ответ №1:
Сам Angular не предоставляет ничего для чтения из DOM.
Если вы хотите читать из DOM, вам нужно использовать ElementRef
.
Использование ElementRef
гораздо меньше беспокоит безопасность, чем, например, использование jQuery.
Правильно, что вы не позволяете этому приложению правильно работать с рендерингом на стороне сервера или веб-разработчиками, если вы это сделаете.