angular 資料載入完畢執行js方法
阿新 • • 發佈:2019-01-04
自定義了一條指令:
//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>