Мне нужно получить clientHeight из div? Как это сделать в Angular? (Меня не волнует, если это плохая практика на данный момент)
Я пробовал тысячу вещей, некоторые из которых можно увидеть в этом плунжере. Код ниже работает вне контроллера, но не для clientHeight:
$scope.myElem = angular.element(document.getElementById('testDiv'));
$scope.myAttr = $scope.myElem.attr('name');
Я не знаю, как получить атрибуты из директивы. Кажется, что все примеры используют только ссылку с именованными атрибутами. Я не буду устанавливать clientHeight, мне просто нужно вернуть его.
Использование директивы было бы самым простым способом. DOM полностью реализуется в функции link
(post link), поэтому свойства элемента должны быть доступны.
Например
.directive('logClientHeight', function($log) {
return {
link: function(scope, element) {
$log.debug(element.prop('clientHeight'));
}
}
});
Обратите внимание, что для элемента, имеющего типичные свойства элемента, он должен быть типичным элементом.
Спасибо Эрик Мартинес за это.
elem[0].clientHeight
. Ваша DOM работает в вашей директиве, а не в вашем контроллере.