jquery - AngularJS - Does scrolling to an element belong in a directive? -
i'm aware dom manipulation belongs in directives rather controllers, i'm hung on whether scrolling element (with jquery's scrolltop
) considered dom manipulation and/or should moved directive.
my page dynamically generated (using grails) , small bootstrap dropdown placed on corner of page facilitate scrolling places within lengthy document:
<a ng-click="scrollto('question${ subquestion.id}')">
the ${}
replaced number when sent client.
my scrollto
function within controller rather simple , works:
$scope.scrollto = function(id) { $('html, body').animate({ scrolltop: $('#' + id).offset().top - 50 }, 1000); };
i'm using ui-router , using $uiviewscroll
scroll element; seemed more in line angular way need 50px offset because of navigation bar , prefer animation (both don't seem option $uiviewscroll
).
questions:
- does scrolling element have digest consequences true dom manipulation?
- is scrolling element outside of directive bad practice? if so, why?
- scrolling runs outside of normal digest cycle, see thread how can hide element when page scrolled?
- i bad practice since includes references elements in dom, that's me... :-) perhaps can make testing controller bit harder since need handle
$
.
Comments
Post a Comment