详解angular中如何监控dom渲染完毕


Posted in Javascript onJanuary 03, 2017

刚刚看到群上一个人说,他们公司凡是用angular和jquery插件一起用的人,都被解雇了,没看到这句话之前我很惭愧的说我有这样用过,其实angular的生态系统那么完善,完全可以不用去操作任何的dom元素都可以满足你的提倡开发需求。

那么如果真的需要用某个jquery插件,自己懒得封装angular插件或者懒得去找angular插件的时候,我们该怎么判断dom加载完毕。

有人说使用ng-init=""

亲测:表示没达到我想要的结果....

当然你如果使用window.onload=function(){}的话,不知道行不行,你可以去试试...

我们先了解一下angular的背景:

AngularJs是Google开源的前端JS框架。使用AngularJs, 我们能够容易地、健壮的开发出类似于Gmail一样的单页Web应用。AngularJs这个新兴的MVC前端框架,具有以下特点: MVC, 模块化,自动化双向数据绑定,语义化标签、依赖注入等。

angular和jquery有什么不同呢?

Jquery的主要目的是简化Js编写,专注于浏览器跨平台,主要用来操作DOM.

AngularJs主要关注Html数据的获取和呈现,以及应对日益复杂的Web应用需求,使得开发庞大的Web应用能够更加容易。

事实上,AnguarJs提供了一些对于Html进行加强的语义标签(directive),这些标签在浏览器加载完页面后被执行。举例来说:

<table id=”leaderBoard”>
     <thead>
       <tr>
         <th>Id</th>
         <th>Name</th>
         <th>Salary</th>
       </tr>
     </thead>
     <tbody>
       <tr ng-repeat="user in users">
         <td>{{user.Id}}</td>
         <td>{{user.Name}}</td>
         <td>{{user.Salary}}</td>
       </tr>
     </tbody>
</table>

上面的ng-repeat,就是一个directive, 相当于一个for循环。在页面加载完成后,AngularJs会遍历users数据对象,来呈现(render)出这个table中的内容。

如何实现在render完成之后,执行Js脚本

当我们使用Jquery结合AngulraJs使用的时候,希望在render完table后,执行一段js脚本,把JqTable应用到该table上。在实际开发中,会经常碰到这样的需求,希望能够捕获到AngularJs渲染完成页面的事件。

要达到这个目的,我们需要为当前的app自定义directive:

app.directive('onFinishRenderFilters', function ($timeout) {
  return {
    restrict: 'A',
    link: function(scope, element, attr) {
      if (scope.$last === true) {
        $timeout(function() {
          scope.$emit('ngRepeatFinished');
        });
      }
    }
  };
});

然后,在我们需要监控的地方,加上该directive:

<tr ng-repeat="user in users" on-finish-render-filters>
   <td>{{user.Id}}</td>
   <td>{{user.Name}}</td>
   <td>{{user.Salary}}</td>
</tr>

最后,补充上我们需要render完成之后的Js脚本:

$scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
     //下面是在table render完成后执行的js
     var table = $("#leaderBoard").dataTable({
       bJQueryUI: true,
       "sScrollX": '100%',
     });
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
限制文本字节数js代码
Mar 06 Javascript
javascript 日历提醒系统( 兼容所有浏览器 )
Apr 07 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
Apr 16 Javascript
jQuery创建DOM元素实例解析
Jan 19 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
Sep 15 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
Dec 13 Javascript
快速掌握Node.js模块封装及使用
Mar 21 Javascript
Angularjs 实现一个幻灯片示例代码
Sep 08 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
JS正则匹配中文的方法示例
Jan 06 Javascript
javascript 中的继承实例详解
May 05 Javascript
Node.js 使用AngularJS的方法示例
May 11 Javascript
Node.js学习入门
Jan 03 #Javascript
通过AngularJS实现图片上传及缩略图展示示例
Jan 03 #Javascript
DWR3 访问WEB元素的两种方法实例详解
Jan 03 #Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
Jan 03 #Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
Jan 03 #Javascript
非常优秀的JS图片轮播插件Swiper的用法
Jan 03 #Javascript
JavaScript对象封装的简单实现方法(3种方法)
Jan 03 #Javascript
You might like
php 常用类整理
2009/12/23 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
2020/04/06 PHP
JTrackBar水平拖动效果
2007/07/15 Javascript
Prototype中dom对象方法汇总
2008/09/17 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
2014/06/15 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
JS实现旋转木马轮播图
2020/01/01 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
python读写LMDB文件的方法
2018/07/02 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
pycharm运行scrapy过程图解
2019/11/22 Python
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
教师自我鉴定范文
2013/11/10 职场文书
机械制造与自动化应届生求职信
2013/11/16 职场文书
中青班党性分析材料
2014/02/16 职场文书
《问银河》教学反思
2014/02/19 职场文书
实习指导老师评语
2014/04/26 职场文书
党员剖析材料范文
2014/12/18 职场文书
药店营业员岗位职责
2015/04/14 职场文书
小学班级管理心得体会
2016/01/07 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书