Angularjs判断页面是否已经渲染结束(动态给标签长度)
相信大家都会碰到这样的问题。页面循环li。但是因为个数不知道。没有办法给li设置固定宽度。那么这时就需要动态计算数据长度并动态改变li的宽度
<!--周边信息-->
<div class="around_information">
<div class="title_info">
<i></i>
<p>周边信息</p>
</div>
<div class="around_info">
<div class="around_table">
<ul>
<li class="aroundLength" ng-repeat="data in aroundInfoData"on-finish-render-filters>
<label>{{data.aroundName}}</label>
<p>{{data.aroundNum}}</p>
</li>
</ul>
</div>
</div>
</div>
<li></li>可以默认给个固定宽度,当然不给也是完全OK的
控制器中的数据信息:
$scope.aroundInfoData =[{"aroundName":"所在商圈", "aroundNum":"李宁商圈"},
{"aroundName":"安踏", "aroundNum":"0"}, {"aroundName":"特步", "aroundNum":"1"},
{"aroundName":"361°", "aroundNum":"0"},{"aroundName":"高中", "aroundNum":"3"},
{"aroundName":"耐克", "aroundNum":"0"},{"aroundName":"阿迪达斯", "aroundNum":"2"},
{"aroundName":"瑜伽馆", "aroundNum":"1"},{"aroundName":"大学", "aroundNum":"2"},
{"aroundName":"篮球馆", "aroundNum":"0"},{"aroundName":"健身房", "aroundNum":"0"}]
json数据可以自己造。想造多少都可以
需要监听页面是否渲染结束。AngularJS有$last是最后一个元素。用到指令
app.directive('onFinishRenderFilters', function ($timeout) {
return {
restrict: 'A',
link: function(scope, element, attr) {
if (scope.$last === true) {
$timeout(function() {
scope.$emit('ngRepeatFinished');
});
}
}
};
});
Controller里面用$on去监听
$scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
//监听页面渲染结束
$scope.showLength =$scope.aroundInfoData.length //把实际需要展示数据的格式赋给showLength
var titleWidth = document.getElementsByClassName("aroundLength");
for(var i =0;i<document.getElementsByClassName("aroundLength").length;i++){
document.getElementsByClassName("aroundLength")[i].style.width = (100/$scope.showLength)+"%";
}
});
预期结果:
Angularjs判断页面是否已经渲染结束(动态给标签长度)的更多相关文章
- vue中判断页面滚动开始和结束
参考链接:https://www.jianshu.com/p/adad39705ced 和 https://blog.csdn.net/weixin_44309374/article/deta ...
- angularjs如何在视图渲染结束之后,或者render之后执行指令中的link方法呢?
angularjs如何在视图渲染结束之后,或者render之后执行指令中的link方法 关键字: $timeout app.directive("myDirective",func ...
- document.readyState等属性,判断页面是否加载完
如何在页面加载完成后再去做某事?什么方法可以判断当前页面加载已完成?document.readyState 判断页面是否加载完成?javascript提供了document.readyState==& ...
- AngularJS应用页面切换优化方案
葡萄城的一款尚在研发中的产品,对外名称暂定为X项目.其中使用了已经上市的Wijmo中SpreadJS产品,另外,在研发过程中整理了一些研发总结分享给大家.如本篇的在页面切换的过程中优化方案,欢迎大家跟 ...
- Diy页面服务端渲染解决方案
1. 问题由来 在移动互联网电商领域,运营每天需要搭建多个促销页面来吸引用户去点击去购买,一开始程序员临时写个新页面去实现,可这些页面可以用几次就不用了,每次创建新页面去实现费时费力,而且,电商的运营 ...
- AngularJs应用页面
AngularJs应用页面切换优化方案 葡萄城的一款尚在研发中的产品,对外名称暂定为X项目.其中使用了已经上市的wijmo中SpreadJS产品,另外,在研发过程中整理了一些研发总结分享给大家.如 ...
- 从父子组件的mounted钩子的同步执行与页面的异步渲染看nextTick的用法
最近复习vue的时候遇到了一个很奇怪的问题,我们直接从实例中看: <div id="app"> <child ref="child">& ...
- .NET实时2D渲染入门·动态时钟
.NET实时2D渲染入门·动态时钟 从小以来"坦克大战"."魂斗罗"等游戏总令我魂牵梦绕.这些游戏的基础就是2D实时渲染,以前没意识,直到后来找到了Direct ...
- JavaScript——判断页面是否加载完成
前言 接上文,既然你是做一个loading的效果,你总不能一直loading,当页面完成加载的时候你总要结束吧 步骤 先说下原生的方法,再讲jquery的方法,原理是一样的 JavaScript // ...
随机推荐
- CMDB资产管理系统开发【day26】:数据正式存入待存区
1.from表单提交 1.数据提交到哪里呢? 提交到assets/new_assets_approval.html这了 2.Yes, I'm sure提交了什么? 为什么没有下拉框了 ...
- Linux系统在线安装、启动 redis
环境: Linux系统:VMware 14 中 CentOS 7 64 位 redis版本:redis-stable.tar.gz(当前版本是:redis-cli 4.0.9) 一.Linux在线安装 ...
- Java WebService接口生成和调用 图文详解>【转】【待调整】
webservice简介: Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范实施的应用之间 ...
- LFYZ-OJ ID: 1019 位数问题
位数问题 问题描述 在所有的N位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值. INPUT 输入一个数N(1<=N<=1000),输入以0结 ...
- 第十四节:再探MVC中路由的奥秘
一. 基于RouteBase扩展 1. 原理 扩展RouteBase,同样使用的是MVC框架提供的MvcRouteHandler进行处理. 2. 步骤 1. 新建YpfRoute1类,继承RouteB ...
- IScroll某些手机下不触发ScrollEnd问题处理
同样是微信7.0,看起来内核都是x5内核,两款不同的手机,一个有问题,一个没有问题. IScroll在问题手机下会出现快速拨动时候不触发ScrollEnd事件现象,轻点一次才会触发,解决办法 docu ...
- mysql 原理 ~ 并行复制
一 概念1 MTS(Prepared transactions slave parallel applier) 主库在同一时间进入prepare状态的事务可以被从库并行回放2 传统与改进 ma ...
- python3编程练习题
记录一些基础编程练习题和一些遇见的坑 1)输出0到100的数字,如果数字是3的倍数输出Fizz,5的倍数输出Buzz.同时是3和5的倍数输出FizzBuzz,其他情况则打印原数字 for i in r ...
- ES进阶--02
第11节深度探秘搜索技术_案例实战基于dis_max实现best fields策略进行多字段搜索 课程大纲 1.为帖子数据增加content字段 POST /forum/article/_bulk{ ...
- 20175226 2018-2019-2 《Java程序设计》第三周学习总结
20175226 2018-2019-2 <Java程序设计>第三周学习总结 教材学习内容总结 编程语言的几个发展阶段 类面向机器语言(汇编语言).面向过程语言(C语言).面向对象语言(J ...