angularjs渲染完成

使用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%,
});
});
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script src="angular.min.js"></script>
<script>
var myApp = angular.module("myApp", []);
    myApp.directive(isOver,function(){
return {
restrict: A,
scope: {
over: =isOver
},
link:function(scope, elm, attr){
if(scope.$parent.$last){
scope.over = true;
}
}
}
    });
    myApp.controller("testCtrl", function($scope){
        $scope.items = [0,1,2,3,4];
$scope.toggle = {
now:false
};
$scope.$watch(toggle.now,function(){
if($scope.toggle.now)
console.log(game over!);
});
    });
</script>
</head>
 
<body>
<p ng-app="myApp">
  <p ng-controller="testCtrl">
    <ul>
      <li ng-repeat="item in items" is-over="toggle.now" >{{item}}</li>
    </ul>   
  </p>
</p>
</body>
</html>
guanggao123 mail.com 京剧 名段 海边图画儿童绘画大全 excer ca1882 4399quanhuang97 oracle 时间字段 索引 damo.jzszs.cn すこっぷ 長ずるに及んで あう的ない形 吉他弦距多少合适图解 武邑中学录取分数线 汽车故障码奔驰 16cf00 超碰caoporen97人人 pp助手iphone越狱版 好看裙子 通达信const sis forum 系统清理 腾讯 猎豹 向井蓝2017年 小恶魔 女人外阴油画图片 yum update upgrade 腾讯nba主播悠悠 大玉儿传奇下载 zeetea 包装设计 dns盾 cdn inform about 皇上我不是女主 小说 replica

Copyright 生活吧 Some Rights Reserved

如反馈或投诉等情况联系:une35498#163.com