fix  top-visible item from having old scope in $watcher

element of viewport need not have scope, so take passed reference from
controller. Otherwise scope of eventlistener  does not get destroyed