Показать сообщение отдельно
  #7 (permalink)  
Старый 26.02.2015, 02:14
Аватар для MetaDriver
Аспирант
Отправить личное сообщение для MetaDriver Посмотреть профиль Найти все сообщения от MetaDriver
 
Регистрация: 24.04.2014
Сообщений: 66

Попытка запустить "с дубликатами" в версии 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>
Ответить с цитированием