При нажатии на кнопку я добавляю элементы в массив и хочу увидеть список в ng-repeat. При первом нажатии все срабатывает замечательно. При втором - я вижу, что размер массива увеличился ({{data.length}}), но список не обновляется. Код программы:
<!doctype html>
<html>
<head>
<link href="../angular/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="../angular/angular.min.js" type="text/javascript"></script>
<script src="script.js"></script>
</head>
<body ng-app="test">
<div ng-controller="ParentCtrl" class="ng-scope" style="background-color: Silver">
<span>{{data.length}}
<table class="table" style="background-color: White">
<tbody>
<tr ng-repeat="task in data">
<td>
{{task}}
</td>
</tr>
</tbody>
</table>
</span>
<div ng-controller="ChildCtrl" class="ng-scope" style="background-color: Green">
<button ng-click="emit();">
Emit</button>
</div>
</body>
</html>
angular.module('test', [])
.controller('ParentCtrl', function($scope, $rootScope) {
$scope.data = [];
$scope.$on('something', function(event, data) {
$scope.data.push("Scope:" + data);
});
$rootScope.$on('something', function(event, data) {
$scope.data.push("rootScope:" + data);
});
})
.controller('ChildCtrl', function($scope, $rootScope) {
$scope.value = "from grandson";
$scope.emit = function() {
$scope.$emit('something', $scope.value); // вверх!
}
});
Наверное, руки кривые... Может кто подправит?