Подтвердить что ты не робот

Невозможно изменить стиль CSS в AngularJS

По некоторым причинам я не могу изменить стиль элемента, используя следующее:

angular.element("#element").style.height = 100px;

Я уверен, что angular.element("#element") работает, так как он возвращает элемент DOM. Кроме того, это работает:

angular.element("#element").addClass('something');

(Все, что я нашел, это ngStyle, но я не думаю, что это то, что я ищу?)

Должен ли я использовать что-то еще?

Если да: Какие? Почему .style.something не работает?

4b9b3361

Ответ 1

В соответствии с документами:

Примечание: все ссылки на элементы в Angular всегда завернуты в jQuery или jqLite; они никогда не являются сырыми DOM-ссылками.

Таким образом, свойство .style недоступно напрямую, так как оно является свойством wrapped HTMLElement.


Вы можете использовать подход ivarni, чтобы получить HTMLElement (angular.element(...)[0].style...) или использовать метод jQuery/jqLite .css():

angular.element('#element').css('height', '100px');

Ответ 2

Angular element возвращает то, что обертывает элемент DOM, а не сам элемент DOM. Вы можете получить доступ к базовому элементу так же, как и с помощью селектора JQuery.

angular.element("#element")[0].style.height = 100px;

Это, конечно, предполагает, что у вас есть одно совпадение, которое вы должны использовать при использовании идентификатора.

Ответ 3

Если вы используете Angular без jQuery, это работает:

angular.element(document.querySelector("#element"))[0].style.height = "100px";

Я тестировал это в ионном приложении.