本文介绍了Angular $ broadcast无法正常工作.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 $ scope.$ on 在两个控制器之间共享信息. a>和 $ scope.$ broadcast .

I am trying to share informations between two controllers with $scope.$on and $scope.$broadcast.

以下是视图:

<div ng-controller="ParentCtrl">
    <div ng-controller="ChildCtrl">
        {{content}}
    </div>
</div>

和控制器:

.controller('ParentCtrl', ['$scope', function($scope) { 
    $scope.$broadcast('someEvent', 'bidule');
}])

.controller('ChildCtrl', ['$scope', function($scope) { 
    $scope.$on('someEvent', function(event, b) {
        $scope.content = b;
    });
}])

plunker

我在这里做错了什么?

What am I doing wrong here?

推荐答案

子控制器尚未实例化.将broadcast包裹在timeout中的工作原理是: http://plnkr.co/edit/MF7P16K1OTv46JNgkkih?p=preview

The child controller isn't instantiated yet. Wrapping the broadcast in a timeout works:http://plnkr.co/edit/MF7P16K1OTv46JNgkkih?p=preview

$timeout(function(){
   $scope.$broadcast('someEvent', 'bidule');
});

这篇关于Angular $ broadcast无法正常工作.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-22 22:39