forked the angular UI ng-scroll directive because it got too complicated to use the topVisible also changed the object passed to datasource.topVisible to be the item returned from datasource.get