В AngularJS элемент.height() не функция
Я пытаюсь сделать директиву, которая будет влиять на ширину/высоту элемента. Просматривая примеры, я видел, что вы можете получить/установить ширину/высоту, ссылаясь на соответствующую функцию. Например, в функции link директивы я пытаюсь сделать:
function link(scope, element, attr) {
var height = element.height();
}
однако в моем коде я получаю " Error: element.высота не является функцией".
Я пропустил ссылку на угловой.JS модуль / библиотека или документация не актуальна?
2 ответов
Если вы не включаете jQuery angular заменяет свою собственную меньшую библиотеку jqLite. jqlite не имеет функции height() для элементов DOM, поэтому вам нужно будет либо написать свой собственный, либо использовать полную версию jQuery в вашем проекте.
ограниченный api jqlite является здесь.
Джефф Генц прав, что jqLite не имеет height()
метод или эквивалент, но есть еще способ, чтобы получить высоту выбранного элемента. Попробуйте это:
var height = element[0].offsetHeight;
element[0]
возвращает чистый элемент DOM (без оболочки jqLite), который имеет offsetHeight
собственность.