Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<script src="//code.angularjs.org/1.3.0-beta.7/angular.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body ng-app="Demo" ng-controller="DemoCtrl">
  <div class="wrapper">
    <div class="item" ng-repeat="item in bufferedItems | orderBy: '-id'">
      {{ item.name }}
    </div>
  </div>
  <button ng-click="addNewItem()">
    Add New Item
  </button>
</body>
</html>
 
.wrapper {
  width: 200px;
  height: 300px;
  border: 1px solid black;
  overflow: auto;
}
.item {
  background-color: #ccc;
  height: 100px;
  margin-bottom: 1px;
}
 
angular.module("Demo", [])
.controller("DemoCtrl", function($scope) {
  var wrapper = document.getElementsByClassName('wrapper')[0];
  $scope.items = [];
  $scope.bufferedItems = $scope.items;
  
  var checkUpdate = $scope.checkUpdate = function() {
    if(wrapper.scrollTop < 100) {
      $scope.bufferedItems = $scope.items;
    }
  };
  
  angular.element(wrapper).bind("scroll", function () {
    $scope.$apply(checkUpdate);
  })
  
  $scope.$watch('items', $scope.checkUpdate);
  
  for (var i = 0; i < 10; i++) {
    $scope.items[i] = {
      id: i,
      name: 'item ' + i
    };
  }
  
  $scope.addNewItem = function() {
    $scope.items = $scope.items.concat({
      id: $scope.items.length,
      name: "item " + $scope.items.length
    });
  };
});
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers