码迷,mamicode.com
首页 > 其他好文 > 详细

angular指令监听ng-repeat渲染完成后执行自定义事件方法

时间:2017-05-12 00:08:28      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:func   ddl   span   属性   control   特殊属性   class   没有   自定义   

今天工作中遇到需要用到ng-repeat遍历渲染完后执行某个操作,angular本身并没有提供监听ng-repeat渲染完成的指令,所以需要自己创建自定义指令。

在ng-repeat模板实例内部会暴露出一些特殊属性$index/$first/$middle/$last/$odd/$even,$index会随着每次遍历(从0开始)递增,当遍历到最后一个时,$last的值为true,所以可以通过判断$last的值来监听ng-repeat的执行状态,

怎么在遍历过程中拿到$last的值:自定义指令

var app = angular.module(‘app‘,[]);

app.directive(‘repeatFinish‘,function(){
    return {
        link: function(scope,element,attr){
            console.log(scope.$index)
            if(scope.$last == true){
                scope.$eval( attr.repeatFinish );
            }
        }
    }
})

app.controller(‘appCtrl‘,function($scope,$element){
    $scope.arr = [1,2,3,4,5,6];
    $scope.tip = ‘‘;

//定义repeat完成后要执行的方法,方法名可自行定义 $scope.repeatDone
= function(){ $scope.tip = ‘ng-repeat完成,我要开始搞事情了!!!‘;
     //执行自己要执行的事件方法 } });

 

调用时使用angular调用指令的方法就可以了。

<div ng-repeat="i in arr" repeat-finish="repeatDone();">
    <p ng-bind="i"></p>
</div>

 

 Demo

angular指令监听ng-repeat渲染完成后执行自定义事件方法

标签:func   ddl   span   属性   control   特殊属性   class   没有   自定义   

原文地址:http://www.cnblogs.com/kenz520/p/6842674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!