AngularJs element.height() не является функцией

Я пытаюсь сделать директиву, которая повлияла бы на ширину/высоту элемента. Просматривая примеры, я видел, что вы можете получить/установить ширину/высоту, ссылаясь на соответствующую функцию. Например, в функции ссылок директивы, которую я пытаюсь сделать:

function link(scope, element, attr) {
   var height = element.height();
}

Однако в моем коде появляется "Ошибка: element.height не является функцией".

Мне не хватает ссылки на некоторые angular.js модуль/библиотека или документация не обновлена?

Ответ 1

Если вы не включаете jQuery angular, замените свою собственную меньшую библиотеку jqLite. jqLite не имеет функции height() для элементов DOM, поэтому вам нужно либо написать свой собственный, либо использовать полную версию jQuery в вашем проекте.

Ограниченный jqLite api здесь.

Ответ 2

Geoff Genz правильно, что jqLite не имеет метода height() или его эквивалента, но есть еще способ получить высоту выбранного элемента. Попробуйте следующее:

var height = element[0].offsetHeight;

element[0] возвращает чистый элемент DOM (без обертки jqLite), который имеет свойство offsetHeight.