I've tried to create a very simple example of the issue I'm having with AngularJS. I've got a simple scope called testScope. I also have 2 other scopes (grouped1 and grouped2) that are derived from testScope that have been altered using a grouping function found in UnderscoreJs.
script.js
var app = angular.module('testScope', []);
app.controller('mainCtrl', function($scope) {
  $scope.testScope = { 
    test1: {
      data: [
        {
          field1: 'blah',
          field2: 'blah blah'
        },
        {
          field1: 'test',
          field2: 'test test'
        }
     ]
    }
  };
  $scope.createEntry = function(newEntry) {
    $scope.test1.data.push({field1: newEntry.field1, field2: newEntry.field2});
  };
  $scope.test1 = $scope.testScope['test1'];
  $scope.grouped1 = _.groupBy($scope.test1, 'field1');
  $scope.grouped2 = _.groupBy($scope.test1.data, 'field1');
});
index.html
<body ng-app="testScope" ng-controller="mainCtrl">
  <form ng-submit="createEntry(newEntry)">
    Field1: <input type="text" ng-model="newEntry.field1" />
    Field2: <input type="text" ng-model="newEntry.field2" />
    <input type="submit" />
  </form>
  data
  <div> {{ test1 }} </div><br>
  grouped1
  <div>{{ grouped1 }}</div><br>
  grouped2
  <div>{{ grouped2 }}</div>
</body>
The problem is that when I modify my scope (using the form), test1 and grouped1 will update but grouped2 will not. Why doesn't grouped2 update and how do I get grouped2 to update when the scope changes?
Please see my example: http://plnkr.co/edit/IN8lADekDBxDp1CNf8VG?p=preview
 
    