如何获得我的ul元素的高度?在没有jQuery的AngularJS中
How to get height of my ul element? In AngularJS without jQuery
Plnkr http://plnkr.co/edit/a7oV4gWzJG532RSqqOt3?p=preview
我正在一个Angular项目中构建自己的无限滚动能力,我需要获得我的ul的高度。
目前我正在使用这个:
标记<ul id="tags-list">
<li ng-repeat="t in tags">
<div class="tag"
ng-mouseover="showTagDetails(t)"
ng-mouseleave="leaveTag(t)"
ng-click="sendTag(t)">{{t.name}}</div>
<tag-details tag="t"></tag-details>
</li>
</ul>
控制器if ($scope.tags.length != 0 || $scope.tags.length != undefined) {
var theHeight = document.getElementById('tags-list').offsetHeight;
// var h = theHeight.style.height;
console.log(theHeight);
}
由于某种原因,.offsetHeight
为我的ul
返回0
。
var h = theHeight.style.height;
没有返回任何东西。
我不想使用jQuery在这里获得高度,你会怎么做呢?
用$timeout把代码包装在if语句中,让Angular有足够的时间来改变DOM:
$timeout(function(){
var theHeight = document.getElementById('tags-list').offsetHeight;
console.log(theHeight);
});
我能够显示实际计算高度的唯一方法是等待Angular通过强制超时重新渲染DOM。
if ($scope.tags.length != 0 || $scope.tags.length != undefined) {
var list= document.getElementById('tags-list');
setTimeout(function(){
console.log( list.offsetHeight );
}, 100);
}
trevor的答案更好,因为它是一个angular超时服务。
工作活塞:http://plnkr.co/edit/RH1IBRVoowWFUoWvHGY8?p=preview
将代码包装在$timeout调用周围。当你的控制器初始化时DOM还没有被更新,这就是为什么你需要用$timeout来包装它。
$timeout(function() {
if ($scope.tags.length != 0 || $scope.tags.length != undefined) {
var theHeight = document.getElementById('tags-list').offsetHeight;
// var h = theHeight.style.height;
console.log(theHeight);
}
});
相关文章:
- AngularJS-使模型变量可用于jQuery
- angularjs:访问angular控制器中的jquery变量
- AngularJS JQuery Ajax表单提交等效
- AngularJs.调用$http.success中的jQuery函数
- angularjs-bindng-click从jquery动态加载DOM
- 如何在angularJS或JQuery或JavaScript中保持控件
- 去掉jQuery for.css()修改,直接使用AngularJS
- AngularJS或jquery中的依赖级联下拉框列表
- 如何在Jquery中访问AngularJS
- jquery fancybox+angularJS:fancybox按钮动作问题
- 等效于 AngularJS 中的 jQuery html()
- 将代码从jquery移动到angularjs
- 使用JQuery在遗留html中加载动态AngularJS
- 在jQuery中调用AngularJS函数
- AngularJS:在使用嵌套的JQuery Sortables时保持Dom和Model同步
- Jquery + angularjs If 语句有效,但 href 值不变
- Chrome 应用程序使用 JavaScript / jQuery / AngularJS 访问外部资源
- jQuery.AngularJS中的ajaxStart等效函数| AngularJS中的Ajax事件处理程序
- 如何使用Jquery $.angularjs中的Ajax
- 将一个简单的ajax调用转换为使用承诺jQuery/AngularJS