I first started playing around with virtual scrolling/rendering using angular1.x and ng-repeat. I made a directive that would calculate the scroll position, pull records from an array and then the render them in the viewport. I am a big supporter of angular, but it was not the correct tool for this project. Angular 1.x had too much overhead and caused the scrolling to be slow and jerky. (I will be doing a test using Angular 2 very soon) I then built a quick test using plain JS with some Jquery selectors and was able to scroll through 300K records without any performance issues.