Заинтересовался так же этим случаем... Даже в один контролеер добавление внес... Так работает, пока на твою кнопку не нажмешь...
<!DOCTYPE html>
<html>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<!--
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
angular.module('test', [])
.controller(
'ParentCtrl',
[
'$scope',
'$rootScope',
function($scope, $rootScope) {
$scope.data = [0,1,2,3,4];
$scope.$on('something', function(event, data) {
$scope.data.push("Scope:" + data);
});
$rootScope.$on('something', function(event, data) {
$scope.data.push("rootScope:" + data);
});
$scope.add=function(){
$scope.data[$scope.data.length]=$scope.data.length;
};
}
]
)
.controller(
'ChildCtrl',
[
'$scope',
'$rootScope',
function($scope, $rootScope) {
$scope.value = "from grandson";
$scope.emit = function() {
$scope.$emit('something', $scope.value); // вверх!
}
}
]
);
</script>
</head>
<body ng-app="test">
<div ng-controller="ParentCtrl" class="ng-scope" style="background-color: Silver">
<span>{{data.length}}</span>
<table class="table" style="background-color: White">
<tbody>
<tr ng-repeat="task in data">
<td>
{{task}}
</td>
</tr>
</tbody>
</table>
<div>{{data}}</div>
<button ng-click="add();">Add</button>
<div ng-controller="ChildCtrl" class="ng-scope" style="background-color: Green">
<button ng-click="emit();">Emit</button>
</div>
</div>
</body>
</html>
Сказать, что представление не видит модели - вроде не скажешь...