5

angular-jsを使用しています。何かが発生するたびにイベントをトリガーする必要があるサービスがあります。それを行うには、として機能するオブジェクトが必要event aggregatorです。

  1. ビルドする必要がありますか? または、を使用する必要があり$rootScopeますか?
  2. を使用する必要がある場合$rootScope、イベント名が競合しないようにするにはどうすればよいですか?
  3. $rootScope子スコープに伝播する必要のないイベントに使用するのは効率的ですか?
4

2 に答える 2

4

をご覧くださいhttp://docs.angularjs.org/api/ng.$rootScope.Scope#$broadcast

  1. $rootScopeイベント アグリゲーターとして使用することは、イベントをアウトスライドでdigest cycleトリガーしたり、複数 (100 以上) のイベントを同時にトリガーしたりしない限り、まったく問題ありません。
  2. 受け入れられている方法の 1 つは、ネームスペースを使用することです ( namespace:event- pattern used by Backbone.Marionette)
  3. on$emitの代わりに子スコープで使用-上向きにのみ伝播し、下向きに伝播します - すべての子に$broadcast$rootScope$emit$broadcast
于 2013-07-13T07:27:43.967 に答える