这是一个自定义指令,试图使用lodash的去抖但没有'工作。我可以删除debounce但是在我的网络中,当用户滚动到页面底部时,会有额外的2-4个调用。怎么解决这个问题?
angular.module('app')
.directive('checkBottom', function($document, $window) {
return function(scope, elm, attr) {
$document.bind('scroll', function() {
if( ($window.innerHeight + $window.scrollY) > $document.innerHeight() - 50) {
_.debounce(applyFunc, 100 ); // this don't work?
function applyFunc(){
scope.$apply(attr.checkBottom);
}
}
});
};
});
答案 0 :(得分:1)
_.debounce()
创建一个供以后使用的功能;它不是你打电话来调用你的功能的东西。根据{{3}},您可以像这样使用它:
var applyFunc = applyFunc(){
scope.$apply(attr.checkBottom);
}
var debouncedApplyFunc = _.debounce(applyFunc, 100 );
angular.module('app')
.directive('checkBottom', function($document, $window) {
return function(scope, elm, attr) {
$document.bind('scroll', function() {
if( ($window.innerHeight + $window.scrollY) > $document.innerHeight() - 50) {
debouncedApplyFunc();
}
});
};
});