title: Pushing to an array does not update view list via ng-repeat directive
body: <p>I have a simple <code>ng-repeat</code> directive implemented in my <code>index.html</code></p>
  
  <pre><code>&lt;div ng-repeat="item in itemCollection"&gt;
      {{item.name}}
      {{item.date}}
      ...
  &lt;/div&gt;
  </code></pre>
  
  <p>Im trying to add a new item in the array using the <code>push()</code> method.</p>
  
  <pre><code>$scope.itemCollection = [];
  
  $scope.someFunction = function(){
      var o = {};
      //do stuff here.
      o.name = name-fromDoingStuff;
      o.date = date-fromDoingStuff;
      ...
  
      $scope.itemCollection.push(o);
  }
  </code></pre>
  
  <p><code>itemCollection</code> gets updated. I confirmed this using <code>alert()</code></p>
  
  <pre><code>alert($scope.itemCollection[0].name); 
  alert($scope.itemCollection[0].date); 
  ... 
  alert($scope.itemCollection[1].name); 
  alert($scope.itemCollection[1].date); 
  ...
  </code></pre>
  
  <p>But the list displayed in view does not get updated. I already tried using <code>$scope.$apply</code> but it's still the same. What could I be doing wrong? </p>
  
  <p><strong>EDITED</strong> Added additional info:</p>
  
  <p>The <code>div</code> is inside <code>ng-controller</code></p>
  
  <pre><code>&lt;body ng-app = "grabbingSystem" ng-controller = "mainCtrl"&gt;
      &lt;div class = "center-wrap"&gt;
          &lt;ui-view&gt;&lt;/ui-view&gt; //I'm using angular-ui-router
      &lt;/div&gt;
  &lt;/body&gt;
  </code></pre>
  
  <p>The <code>div</code>is not part of a nested <code>ng-repeat</code> </p>
  
  <p><strong>EDITED</strong> Added additional Info:</p>
  
  <p>All the pages in the config are assigned to the same controller. </p>
  
  <pre><code>.config([
          '$stateProvider',
          '$urlRouterProvider',
          function($stateProvider, $urlRouterProvider){
  
              $stateProvider
                  .state('list', {
                      url: '/list',
                      templateUrl: 'tickets/_ticketsList.html',
                      controller: 'mainCtrl',
                      resolve: {
                        postPromise: ['tickets', function(tickets){  
                          return tickets.DBgetAll();
                        }]
                      }
                  })
                  .state('grab', {
                      url: '/grab',
                      templateUrl: 'tickets/_ticketsGrab.html',
                      controller: 'mainCtrl'
                  })
  
              $urlRouterProvider.otherwise('list');
          }
  
      ])
  </code></pre>