0
このディレクティブは他のスレッドからもわかっています。 今私はAngularJSに実行していたが例外を適用します。
Error: $rootScope:inprog Action Already In Progress $digest already in progress
誰もが、私はこの例外を防ぐことができます方法を知っていますか? トリガーで試しましたが、成功しませんでした。ちょうどあなたが、それはすでに起こっているでは達成しようとしていたので、何でも、ダイジェストがすでに発生しているので、scope.$apply();
を呼び出す必要がないことを意味し
(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');
});
}
});
}
}
})();