绑定滚动并观察争论 - 更好的方法?

时间:2015-01-27 16:44:05

标签: javascript angularjs angularjs-directive angularjs-scope

我想在AngularJS中创建一个更简单的jQuery Waypoints.js版本(页面上的粘性元素)。我创建了一个特殊的指令来观看滚动,它看起来像这样:

app.directive('watchScroll',function($window){
    return {
        restrict: 'E',
        link: function(scope,elem,attrs){
            var win = $window;

            angular.element(win).bind('scroll',function(){
                scope.watchScroll = win.pageYOffset;
                scope.$apply();
            })
        }
    }
})

然后在我想要的任何DIV' waypoint',我添加以下指令:

app.directive('animateThis',function(){
    return {
        restrict: 'E',
        link: function(scope,elem,attrs){
            scope.$watch('watchScroll',function(s){                         
                if(s >= 100){ // do stuff here } else { // do the opposite stuff here }
            });
        }
    }
})

这很好用,但我只是想知道这是否是一个好方法,如果没有,你会改变什么?

0 个答案:

没有答案