0

请看看这个简单的小提琴:http: //jsfiddle.net/tgbpy/11/

我无法发出事件。我需要在不创建共享服务的情况下做这个简单的事情。我究竟做错了什么?

4

2 回答 2

2

控制器 1 和控制器 2 没有嵌套。它们是对等的,属于 rootScope。

<div ng-controller="controller1">...</div>
<div ng-controller="controller2">...</div>

因此,当您从控制器 1 发出事件时,它不会到达控制器 2,而只会到达父级(在这种情况下,它将到达 rootScope)。

如果在控制器 2 中声明了控制器 1,那么您的代码应该可以工作。

<div ng-controller="controller2">  
  ..
  <div ng-controller="controller1">...</div>
  .. 
</div>
于 2012-09-03T14:53:08.720 回答
1

添加到@manoj 告诉你的内容

这是一个有效的小提琴

http://jsfiddle.net/tgbpy/13/

当您想要发布消息时,您调用 $rootScope.$broadcast ,除非两个控制器是嵌套的。如果你做 $rootScope.$broadcast 任何范围,无论它在哪里都会得到它。

于 2012-09-03T15:29:07.670 回答