$ assistindo a alterações de dados em uma diretiva Angular

Como posso acionar uma variável $watch em uma diretiva Angular ao manipular os dados dentro (por exemplo, inserir ou remover dados), mas não atribuir um novo object a essa variável?

Eu tenho um dataset simples atualmente sendo carregado a partir de um arquivo JSON. Meu controlador Angular faz isso, assim como define algumas funções:

 App.controller('AppCtrl', function AppCtrl($scope, JsonService) { // load the initial data model if (!$scope.data) { JsonService.getData(function(data) { $scope.data = data; $scope.records = data.children.length; }); } else { console.log("I have data already... " + $scope.data); } // adds a resource to the 'data' object $scope.add = function() { $scope.data.children.push({ "name": "!Insert This!" }); }; // removes the resource from the 'data' object $scope.remove = function(resource) { console.log("I'm going to remove this!"); console.log(resource); }; $scope.highlight = function() { }; }); 

Eu tenho um