Сообщение от Shitbox2
|
Тут сам бог велел отсылать события в глобальный $rootScope
|
Сообщение от nerv_
|
Т.о., если я каждое значение скролла отправляю через скоп, я пересчитываю все приложение много-много раз.
|
Сообщение от Shitbox2
|
А, вообще, в Ангуляр не мешало бы добавить директиву для скроллинга для навешивания на window, textarea и т.п.
|
примерно так
.directive( 'ngScroll', [ '$timeout', '$document', function( $timeout, $document ) {
return {
link: function( scope, element ) {
var timer = { cancel: angular.noop };
element = element[ 0 ].tagName === 'HTML' ? $document : element;
element.bind( 'scroll', function() {
var elem = element[ 0 ].documentElement ? element[ 0 ].documentElement : element[ 0 ];
$timeout.cancel( timer );
timer = $timeout(function() {
scope.$emit( 'event:name', {
scrollTop: element.scrollTop(),
scrollLeft: element.scrollLeft(),
scrollHeight: elem.scrollHeight,
scrollWidth: elem.scrollWidth,
clientHeight: elem.clientHeight,
clientWidth: elem.clientWidth
});
}, 200 );
});
}
};
}]);