0

この単純なフィドルをご覧ください: http://jsfiddle.net/tgbpy/11/

イベントを発行できません。共有サービスを作成せずに、この単純なことを行う必要があります。私は何を間違っていますか?

4

2 に答える 2

2

controller1 と controller2 はネストされていません。それらはピアであり、rootScope の下にあります。

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

したがって、controller1 からイベントを発行すると、controller2 には到達しませんが、親にのみ到達します (この場合は rootScope に到達します)。

controller1 が controller2 内で宣言されている場合、コードは機能するはずです。

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

@manojがあなたに言ったことに追加するには

ここに機能するフィドルがあります

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

メッセージをパブリッシュする場合は、2 つのコントローラーがネストされていない限り、$rootScope.$broadcast を呼び出します。$rootScope.$broadcast を実行すると、任意のスコープが取得されます。

于 2012-09-03T15:29:07.670 に答える