【发布时间】:2015-01-07 12:26:43
【问题描述】:
我正在尝试关注这个 jsfiddle:
http://jsfiddle.net/vojtajina/U7Bz9/
现在我的脚本文件中有这个:
var app = angular.module('my-app', [
'scroll',
'ui.bootstrap',
'ngRoute']);
var scrollService = angular.module('scroll', []).directive('whenScrolled', function() {
return function(scope, elm, attr) {
var raw = elm[0];
console.log("binding");
elm.bind('scroll', function() {
console.log("scrolling");
if (raw.scrollTop + raw.offsetHeight >= raw.scrollHeight) {
scope.$apply(attr.whenScrolled);
}
});
};
});
HTML 文件(jade 表示法)具有:
编辑:我添加了一个 id 和 CSS
div#lista_iniciativas.row(when-scrolled="loadMore()")
然后
#lista_iniciativas {
overflow: auto;
}
`
问题是我可以在控制台中看到“绑定”日志,但看不到“滚动”,即使调试我也无法进入绑定功能......换句话说,绑定功能永远不会触发。知道这里有什么问题吗?是不是我绑定的方式有点不对?
【问题讨论】:
-
'binding' 会在你放置指令的地方触发,你能展示更多关于你的 html 或在 jsfiddle 或一些中复制问题吗?如果未触发“滚动”事件..您是否在有效 div 上使用指令?或正确的元素,对于溢出很重要 attr be: 'auto' or 'scroll'..
-
@rahpuser 感谢您的参与。我正在使用有效的
div作为elm,实际上我可以在调试器中看到它是正确的。它有overflow 'auto'(也试过scroll)。到目前为止,我通过将$document注入函数并对其进行绑定更进一步——这很有效……我不知道你还想要什么? -
好的,所以你已经修复了它?..我要求一个 jsfiddle 来重现你遇到的问题..另外,我建议限制或消除滚动功能..
-
嗯,是的,它以某种方式修复了,虽然我不明白为什么帖子中的代码不起作用......
-
你是怎么解决的?实际上帖子中的代码有效..我已经尝试过该代码
标签: javascript angularjs angularjs-directive bind