1. 程式人生 > >angular 資料載入完畢執行js方法

angular 資料載入完畢執行js方法

自定義了一條指令:

//on-finish-render="ngRepeatFinished"  load js after render datas
UserManagerApp.directive('onFinishRender', function ($timeout) {
    return {
        restrict: 'A',
        link: function (scope, element, attr) {
            if (scope.$last === true) {
                $timeout(function () {
scope.$emit('ngRepeatFinished'); }); } } } })

解釋下: 
link中當scope中的$last(也就是最後一條資料),載入完畢後觸發’ngRepeatFinished’。

scope.$emit(‘ngRepeatFinished’);這句話就相當於trigger,會觸發定義的事件監聽: 
也就是我們在controller中會新增:

$scope.$on('ngRepeatFinished', function( ngRepeatFinishedEvent )
{
})
  • 1

注:記得在html中需要載入資料的位置增加指令屬性哦!

<tr ng-repeat="item in userList" on-finish-render>