Angularjs 在两个子控制器之间共享父控制器的数据

Angularjs 在两个子控制器之间共享父控制器的数据,angularjs,parent-child,controllers,Angularjs,Parent Child,Controllers,我试图在两个控制器(child1和child2)之间共享数据,这两个控制器是一个公共控制器(父控制器)的子控制器。 index.html是: <div ng-controller="parent"> <ul> <p>Parent controller</p> <li ng-repeat="item in items"> {{item.id}} </li>

我试图在两个控制器(child1和child2)之间共享数据,这两个控制器是一个公共控制器(父控制器)的子控制器。 index.html是:

<div ng-controller="parent">
    <ul>
    <p>Parent controller</p>
        <li ng-repeat="item in items">
            {{item.id}}
        </li>
    </ul>
    <div ng-controller="child1">
        <ul>
            <p>First DIV :</p>
            <li ng-repeat="item in items">
                {{item.id}}
            </li>
        </ul>
    </div>
    <div ng-controller="child2">
        <ul>
            <p>Second DIV :</p>
            <li ng-repeat="item in items">
                {{item.id}}
            </li>
        </ul>
    </div>
</div>

但是页面上没有显示任何内容。此代码有什么问题?

使用angular的
$timeout
服务,而不是setTimeout:

myApp.controller('parent',['$scope','$timeout', function($scope, $timeout) {
    $scope.items = [
        {'id':1},
        {'id':2},
        {'id':3},
        {'id':4}
    ];

    $scope.items.push({'id':10});

    $scope.myfun = function() {
       $timeout(function(){
            $scope.items.push({'id':20});
            alert("inserting 20....!");
        },3000);
    }

    $scope.myfun(); 
}]);

可能是您忘记了ng应用程序的属性,请等待回复。我已经在标签中指定了ng app=“myApp”。你能把你的代码放到plnkr.co上并给我们一个链接吗?
  • 应该是
  • 是。他们肯定会的。谢谢你@CodeHater。只是出于好奇,为什么你的名字叫CodeHater。。。。??!!!!哈哈哈!因为我是一个:D
    myApp.controller('parent',['$scope','$timeout', function($scope, $timeout) {
        $scope.items = [
            {'id':1},
            {'id':2},
            {'id':3},
            {'id':4}
        ];
    
        $scope.items.push({'id':10});
    
        $scope.myfun = function() {
           $timeout(function(){
                $scope.items.push({'id':20});
                alert("inserting 20....!");
            },3000);
        }
    
        $scope.myfun(); 
    }]);