Попытка запустить "с дубликатами" в версии 1.4.0, приводит к тому же результату, то бишь баг вполне актуальный.
Значит тебе сюда -->
https://github.com/angular/angular.js/issues
<!doctype html>
<html>
<head>
<!--link href="angular/bootstrap.min.css" rel="stylesheet" type="text/css" /-->
<script src="https://code.angularjs.org/1.4.0-beta.5/angular.min.js" type="text/javascript"></script>
<script type='text/javascript'>angular.module('test', [])
.controller('ParentCtrl', function($scope, $rootScope) {
*!*
$scope.data = ['asddsa','ewqwe','123432','123432','123432'];
// если раскоментируешь верхнюю строчку со $scope.data и закоментируешь нижнюю,
// то обнаружишь, что всё ломается ещё раньше - уже в момент начальной отрисовки.
// дубликаты, мать её....
*/!*
// $scope.data = ['asddsa','ewqwe','123432'];
$scope.$on('something', function(event, _data) {
$scope.data.push("Scope:" + _data+'-'+$scope.data.length);
});
$rootScope.$on('something', function(event, _data) {
$scope.data.unshift("rootScope:" + _data+'-'+$scope.data.length);
});
})
.controller('ChildCtrl', function($scope) {
$scope.value = "from grandson";
$scope.emit = function() {
$scope.$emit('something', $scope.value); // вверх!
}
});
</script>
</head>
<body ng-app="test">
<div ng-controller="ParentCtrl" style="background-color: Silver">
<div>{{data.length}}
<table style="background-color: White">
<tbody>
<tr ng-repeat="task in data">
<td>
{{$index+') '+task}}
</td>
</tr>
</tbody>
</table>
</div>
<div ng-controller="ChildCtrl" style="background-color: Green">
<button ng-click="emit();">
Emit</button>
</div>
<div><pre>{{data | json}}</pre></div>
</div>
</body>
</html>