AngularJS中ng-repeat渲染完成事件[2]

ng-repeat渲染完成事件

此方法与前篇所写不同的是, 此种写法, 每次repeat数组有更新变化(需要重新渲染)时, 都会触发此事件, 调用对应侦听, 但是, Angularjs1.3.0及其以上的版本不支持此种写法.

核心代码

原理是使用自定义一个过滤器, 具体代码如下:

myApp.filter('ngRepeatFinishEveryTime', function ($timeout) {
    return function (data, eventName) {
        var me = this;
        var flagProperty = '__finishedRendering__';
        if (!data) data = {};
        if (!data[flagProperty]) {
        Object.defineProperty(data, flagProperty, {
            enumerable: false,
            configurable: true,
            writable: false,
            value: {}
        });
        $timeout(function () {
                delete data[flagProperty];
                me.$emit(eventName ? eventName : "ngRepeatFinishEveryTime");
            }, 0, false);
        }
        return data;
    };
});

实例

下面是具体用法实例:



  
    
    
    
    
  
  
    
索引 学号 姓名 性别 年龄 操作
上移 下移
总数量:

姓名:

性别:

年龄:

完整实例, 请点击一下链接进行下载
链接: http://pan.baidu.com/s/1c7eRRg 密码: 34gp

你可能感兴趣的:(AngularJS中ng-repeat渲染完成事件[2])