Показать сообщение отдельно
  #1 (permalink)  
Старый 25.02.2015, 15:18
Новичок на форуме
Отправить личное сообщение для YuriT64 Посмотреть профиль Найти все сообщения от YuriT64
 
Регистрация: 25.02.2015
Сообщений: 3

ng-repeat не работает...
При нажатии на кнопку я добавляю элементы в массив и хочу увидеть список в 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); // вверх!
    }
});


Наверное, руки кривые... Может кто подправит?
Ответить с цитированием