У меня есть простая всплывающая директива, там мне нужно найти высоту div.Угловая директива - offsetHeight выходы 0
Когда я вывожу div console.log($elem.find('.reviews-slide-detail'))
, он показывает мне полный объект, с [0] -> offsetHeight
с указанием номера (223).
Но когда я пытаюсь вывести число непосредственно console.log($elem.find('.reviews-slide-detail')[0].offsetHeight);
, он показывает 0.
Моего ДИВ не скрыт, ее исправление позиционируется и очень нормально в моделировании.
Кто-нибудь знает причину этой разницы?
EDIT:
Часть директивы:
function resultReviewDirective($timeout, $http, $state, UtilService, ResultService, Session, $window) {
return {
restrict: 'AEC',
replace: true,
templateUrl: 'modules/core/templates/result.review.html',
link: function($scope, $elem, $attrs){
$scope.reviewFunc.setHeight = function() {
console.log($elem.find('.reviews-slide-detail'));
console.log($elem.find('.reviews-slide-detail')[0].offsetHeight);
};
}
};
}
angular.module('core').directive('resultReview', resultReviewDirective);
Это потому, что вы, вероятно, пытаетесь получить доступ к элементу слишком рано. 'console.log ($ elem.find ('. detail'))' показывает вам полный объект, потому что консоль хранит ссылку на объект, которая автоматически получает обновления при рендеринге, но при выводе 'console.log ($ elem.find (' .detail ') [0] .offsetHeight) 'непосредственно не ссылается и просто выводит значение в это время регистрации. – PSL
Можете вы добавить код для этой директивы? –
@PSL, я запускаю 'console.log' с функцией щелчка, поэтому он не запускается при загрузке страницы, но я все еще получаю ту же проблему, любые идеи? – muudless