发表于: 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事件,自定义指令的进一步了解。




返回列表 返回列表
评论

    分享到