使用$ emit而不是直接访问父范围

时间:2016-03-26 18:14:42

标签: angularjs

我很难理解你为什么需要使用$ emit而不是使用控制器作为语法并直接访问&更新父范围的数据。有什么用例?

1 个答案:

答案 0 :(得分:0)

直接在父作用域上调用方法显然更有效,而不是使用$emit(或$broadcast)来调度事件。但是有一些合理的理由这样做。

以下是我想到的一些原因:

  • 您希望发出多个应用程序组件可以接收/处理的事件。
  • 您希望对组件进行分离,以便将来可以由不同的控制器(或者服务或指令等)处理该消息。
  • 您希望发出服务/工厂可以使用的事件(这些事件与任何视图/ $范围无关,但您可以将$rootScope注入其中)。