在angular.js中$ Broadcast和$ on无法正常工作

时间:2016-07-18 01:11:26

标签: angularjs

//当我运行下面的代码没有发生在浏览器中我想了解// $ broadcast和$ on但代码不起作用请帮助

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script>
  var app = angular.module("myApp", [])
.controller("ParentCtrl", function firstCtrl($scope)
{
    $scope.$broadcast('someEvent', [1,2,3]);
})

.controller("ChildCtrl", function secondCtrl($scope)
{
    $scope.$on('someEvent', function(event, mass) { console.log(mass); });
});

 </script>

HTML

 <html>
<div ng-app="myApp">
    <div ng-controller="ParentCtrl">
        <h2>Parent</h2>
         <label ng-model="mass"/></label>       
        <hr/>


        <div ng-controller="ChildCtrl">
            <h2>Child</h2>
        <label ng-model="mass"/></label>        
    </div>



</div>

</html>

1 个答案:

答案 0 :(得分:3)

$broadcast向所有已注册子美元范围的听众发送活动。

在您的示例中,在ParentCtrl定义中调用$broadcast,并在ChildCtrl定义中注册侦听器。因此,在调用$broadcast时,没有注册活动侦听器。

在单击按钮后注册侦听器后调用$broadcast

以下是您的示例的工作代码。 https://plnkr.co/edit/GmA0GiLd5HVoykIi0FE4?p=info