Angularjs 角度指令-远视输出0
我有一个简单的弹出指令,在那里我需要找到一个div的高度 当我输出div console.log$elem.find'.reviews slide detail'时,它会显示完整的对象,[0]->offsetHeight显示一个数字223 但当我尝试直接输出数字时,console.log$elem.find'.查看幻灯片详细信息'[0].offsetHeight;,它显示0 我的div不是隐藏的,它的固定位置和非常正常的样式 有人知道这种差异的原因吗 编辑: 指令的一部分:Angularjs 角度指令-远视输出0,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个简单的弹出指令,在那里我需要找到一个div的高度 当我输出div console.log$elem.find'.reviews slide detail'时,它会显示完整的对象,[0]->offsetHeight显示一个数字223 但当我尝试直接输出数字时,console.log$elem.find'.查看幻灯片详细信息'[0].offsetHeight;,它显示0 我的div不是隐藏的,它的固定位置和非常正常的样式 有人知道这种差异的原因吗 编辑: 指令的一部分: function r
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);
多亏了PSL的评论,将其包装为$timeout才有效。这是因为,您可能试图过早地访问该元素。console.log$elem.find'.detail'显示完整的对象,因为console存储对象的引用,该引用在呈现时自动更新,但当您输出console.log$elem.find'.detail'[0]时,它直接离开视线,它不是引用,只是在记录时输出值。您可以为指令添加代码吗?@PSL,我正在使用单击功能触发console.log,因此它不会在页面加载时触发,但我仍然遇到同样的问题,有什么想法吗?页面加载不重要。:,angular运行摘要循环以使用绑定更新DOM,这也发生在ng单击之后。只是为了测试它,将它包装在$timeout中see@PSL那么在这种情况下我应该使用digest吗?