title: Prevent AngularJS from dirty checking several thousand rows each $digest cycle
body: <p>I have a data source that could potentially be several thousand rows. I want users to be able to scroll through the list and filter it without performance problems. My data source automatically fires an event whenever a record changes.</p>
  
  <p>Currently this data is mapped to $rootScope.datasource.</p>
  
  <p>I would like to be able to isolate this large data set from the rest of Angular's $digest cycle and prevent Angular from dirty checking several thousand rows every time something unrelated happens elsewhere in my app. I want Angular to only $digest datasource when I tell it to (after one of my change events fires.)</p>
  
  <p>I've looked at libraries like <a href="https://github.com/Pasvaz/bindonce" rel="nofollow">Bindonce</a> and <a href="https://github.com/abourget/abourget-angular" rel="nofollow">Watch Fighters</a>. This is a great option if the data is totally static, but my records are going to change occasionally, and I want the UI to update when I tell it to.</p>
  
  <p>Is this currently possible in Angular?</p>