Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJs$emit和$broadcast和$on-issue_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJs$emit和$broadcast和$on-issue

Javascript AngularJs$emit和$broadcast和$on-issue,javascript,angularjs,Javascript,Angularjs,试图理解$emit和$broadcast以及$on事件的angularjs,理解了理论部分。但不能理解实际的事情 请看一下这个,, 为什么我没有收到console.log消息 HTMl <div ng-app="demo"> <div ng-controller="ParentCtrl as parent" class="ng-scope"> {{ parent.data }} <div ng-controller="SiblingOneCtrl as

试图理解$emit和$broadcast以及$on事件的angularjs,理解了理论部分。但不能理解实际的事情

请看一下这个,, 为什么我没有收到console.log消息

HTMl

<div ng-app="demo">
   <div ng-controller="ParentCtrl as parent" class="ng-scope">
  {{ parent.data }}
  <div ng-controller="SiblingOneCtrl as sib1" class="ng-scope">
      {{ sib1.data }}
  </div>
</div>
</div>    

除了广播在子控制器有机会实例化之前发生之外,代码没有什么真正的错误。根据使用超时


对不起,忘了添加参考链接,我是从:,那么你的意思是,他做错了?你也可以告诉我,在什么情况下,我们必须使用这些东西
var app = angular.module('demo', []);

app.controller('ParentCtrl',function($scope) {

  $scope.$broadcast('parent', 'Some data'); // going down!

});

app.controller('SiblingOneCtrl',function($scope) {

  $scope.$on('parent', function (event, data) {
    console.log(data); // 'Some data'
  });

});
setTimeout(function() {
  $scope.$broadcast(...
}, 1000);