发表于: 2017-06-10 23:17:41
1 628
今天完成的事情:
完成找精英页面的成功案例,更多公司跳转正在编写中。
明天的计划:
找精英页面编写完成,相关跳转,翻页功能完成。
遇到的问题:
1 在使用AngularJs来渲染页面时,需要在渲染完成后执行其他的操作,但怎么确认是否渲染完成?
解决:
因为onLoad不能保证AngularJs已经完成了页面的渲染,比如用AngularJs来加载某个数据Table,我们得等这个Table加载完之后对Table上的数据进行操作,但因为这个Table是由AngularJs渲染的,所以得找到某个方法获得AngularJs渲染完毕后的事件。
方法是通过写一个directive绑定到我们需要监听的元素上去获得该元素的渲染完毕事件。
①回调函数,
<ul>
<li ng-repeat="item in items" on-finish-render="callMethod()">
dummy Text
</li>
</ul>
②事件通知。
.directive('onFinishRender',['$timeout', '$parse', function ($timeout, $parse) {
return {
restrict: 'A',
link: function (scope, element, attr) {
if (scope.$last === true) {
$timeout(function () {
scope.$emit('ngRepeatFinished'); //事件通知
var fun = $scope.$eval(attrs.onFinishRender);
if(fun && typeof(fun)=='function'){
fun(); //回调函数
}
});
}
}
}
}])
事件处理
$scope.$on('ngRepeatFinished', function(ngRepeatFinishedEvent) {
});
收获:
angular的on事件,自定义指令的进一步了解。
评论