【发布时间】:2016-08-19 20:46:51
【问题描述】:
我正在尝试为我的 div 使用滚动指令。当用户向下滚动并结束 div 时,我想调用一个函数。它给了我未定义的 Scope.$apply 函数? 请任何人帮助。提前谢谢 这是我的html代码
<div id="container" style="
position:absolute;
top: 60px;
width: 100%;
left:0px;height:91%;overflow-y:scroll;" scrolly="showMore()" >
这里是应用程序和控制器
var app = angular.module('smac',[]);
app.controller('asd',function ($http,$scope) {
$scope.showMore = function(){
alert('div finished');
}
});
指令是
app.directive('scrolly', function () {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var raw = element[0];
console.log('loading directive');
element.bind('scroll', function () {
console.log('in scroll');
console.log(raw.scrollTop + raw.offsetHeight >= raw.scrollHeight)
if (raw.scrollTop + raw.offsetHeight >= raw.scrollHeight) {
scope.$apply(attrs.scrolly)
console.log(scope.$apply(attrs.scrolly)); // this is undefined
}
});
}
};
});
【问题讨论】:
-
该控制台日志正在打印 scope.$apply 的返回值,我敢打赌这是未定义的。如果您想检查 is scope.$apply 本身是未定义的,您需要使用。
console.log(scope.$apply); -
为什么它返回 undefined ? @ZacBraddy
-
你真正的问题是什么?你想达到什么目标,什么不工作?
-
在滚动 div 完成时,它应该调用一个函数来渲染更多的 div,但应用函数永远不会被调用 @kabaehr
标签: javascript angularjs scroll