自定义了一条指令:
//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>
本文介绍了一个自定义Angular指令'on-finish-render'的实现方法,该指令用于在数据加载完成后触发特定事件。通过使用$timeout及scope.$emit,确保了在DOM更新后执行额外的操作。
948

被折叠的 条评论
为什么被折叠?



