首页 文章

AngularJS $摘要已在onScroll事件中进行

提问于
浏览
0

我也有这个指令,也可以从其他线程中获知 . 现在我遇到了一个AngularJS应用异常:

错误:$ rootScope:inprog操作已在进行中$ digest已在进行中

有谁知道如何防止这种异常?我用触发器尝试了但没有成功 .

(function() {
'use strict';

angular
    .module('myProject.common')
    .directive('asScrollTop', asScrollTop);

asScrollTop.$inject = ['chatService'];

function asScrollTop(chatService) {
    var directive = {
        restrict: 'A',
        scope: { 
            chatMessagesOfUser: '=',
            currentUser: '=',
            messagesPage: '='
            },
        link: link
    };
    return directive;

    ////////////

    function link(scope, element, attr) {
        console.log(element);
        var trigger = false;
        element.on('scroll', function() {

          if(element[0].scrollTop <= 0 && trigger == false) {
              trigger = true;
              var page = scope.messagesPage + 1;

              chatService.getChatMessagesOfUser(scope.currentUser.id, page).success(function(response) {
                  scope.chatMessagesOfUser = response;
                  scope.$apply();
                  trigger = false;
                }).error(function(data) {
                    console.log('error in asScroll.directive.js#link');
                });
          }
        });
      }
}
})();

1 回答

  • 0

    这只是意味着你不需要调用 scope.$apply(); ,因为摘要已经在发生,所以无论你想用它实现什么,都已经发生了 . 只需删除该行,事情应该正常 .

相关问题