AngularJS:在继续操作之前获取消息回复

AngularJS:在继续操作之前获取消息回复,angularjs,Angularjs,我有一个简单的控制器方法来执行一些操作(它控制我页面的标题)。然而,我想发送一条消息并确认其他控制器(如页面主体上的表单控制器)允许该操作 我想做的是: 从第一个控制器发送消息“BeforeAction” 在另一个控制器中,捕获该消息,生成一个可能依赖于上下文的回复,并以某种方式将该回复传递给第一个控制器 根据回复,要么继续我的操作,要么放弃它 如果在操作之前没有消息的侦听器,我希望操作能够无缝地继续 如何按角度排列?在控制器之间共享数据时,您有两个选项。更好的方法可能是创建一个共享服务并将

我有一个简单的控制器方法来执行一些操作(它控制我页面的标题)。然而,我想发送一条消息并确认其他控制器(如页面主体上的表单控制器)允许该操作

我想做的是:

  • 从第一个控制器发送消息“BeforeAction”
  • 在另一个控制器中,捕获该消息,生成一个可能依赖于上下文的回复,并以某种方式将该回复传递给第一个控制器
  • 根据回复,要么继续我的操作,要么放弃它

  • 如果在操作之前没有消息的侦听器,我希望操作能够无缝地继续


如何按角度排列?

在控制器之间共享数据时,您有两个选项。更好的方法可能是创建一个共享服务并将其注入两个控制器。在这个服务中,您可以有一个消息变量。控制器1可以设置消息。Controller2可以在消息上设置$watch,并在消息值更改时采取适当的行动

另一个选项是使用自定义事件。如果您在Controller1中使用$rootScope.$emit(消息),这将沿着作用域链向下移动,您可以使用$scope.$on(消息)捕捉它

我认为这项服务对你来说会更好。它允许您持有两个控制器都可以访问的侦听器寄存器。例如,如果Controller2在消息变量上设置了一个watch,则将此事实保存到寄存器变量。在Controller1操作前,您可以首先检查寄存器。如果为空,则继续,否则更改消息变量的值