1

我有一个 AngularJS 应用程序,它以前没有使用过内置路由。我正在重构该站点,因此它将成为一个 SPA。

为此,我将应用程序更改为使用 ng-view 在不同页面之间切换,而不仅仅是让服务器为不同的控制器提供服务

完成此操作后,我的无尽滚动突然停止工作。

我有一个如下所示的指令:

directiveModule.directive('whenScrolled', ['$window', function($window) {
    return function(scope, element, attr) {
        var raw = element[0];

        angular.element($window).bind('scroll', function() {
            console.log('test');

            scope.$apply(attr.whenScrolled);
        });
        };
}]);

但是现在滚动事件永远不会被触发。

如果我angular.element($window).bind('scroll', function() {..});取出并在控制器中使用它,它可以正常工作,但它看起来就像一个黑客。

有什么方法可以绑定到指令内的页面滚动事件,该指令在控制器内,在 ng-view 内?

4

1 回答 1

1

您确定带有指令的元素位于控制器内部,然后将 ng-view 添加到 DOM 中吗?

更多代码(A Fiddle)会有所帮助。

于 2013-08-07T13:02:23.543 回答