//当我运行下面的代码没有发生在浏览器中我想了解// $ 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>
答案 0 :(得分:3)
$broadcast
向所有已注册子美元范围的听众发送活动。
在您的示例中,在ParentCtrl定义中调用$broadcast
,并在ChildCtrl定义中注册侦听器。因此,在调用$broadcast
时,没有注册活动侦听器。
在单击按钮后注册侦听器后调用$broadcast
。
以下是您的示例的工作代码。 https://plnkr.co/edit/GmA0GiLd5HVoykIi0FE4?p=info