Events angularjs:事件未被传递到控制器,该控制器当时可能不存在

Events angularjs:事件未被传递到控制器,该控制器当时可能不存在,events,angularjs,scope,Events,Angularjs,Scope,我认为这一定是一个非常常见的问题,比如说 $routeProvider .when('/producer', { templateUrl: 'ui/producer.html', controller: 'ProducerCtrl' }) .when('/consumer', { templateUrl: 'ui/consumer.html', cont

我认为这一定是一个非常常见的问题,比如说

$routeProvider
        .when('/producer', {
            templateUrl: 'ui/producer.html',
            controller: 'ProducerCtrl'
        })
        .when('/consumer', {
            templateUrl: 'ui/consumer.html',
            controller: 'ConsumerCtrl'
        })
从我对$scope生命周期的理解来看,每次路由发生时,都会创建并初始化一个新的作用域/控制器,而旧的作用域/控制器会消亡。这会导致在给定时间,生产者或消费者控制器处于活动状态,但并非两者都处于活动状态。我用角巴塔朗观察到了这一点。因此,我无法将事件从生产者发送到消费者,反之亦然

这非常耗时,因为事件是为控制器之间的通信而设计的。或者它只在控制器和指令之间工作

我肯定我错过了什么,我不敢相信设计是这样的


更新:解决方案仅在rootScope上触发/侦听所有事件,它可以工作。但我仍然想知道angularjs打算以这种方式进行设计。

您应该查看以下问题:

基本上,最佳实践似乎是使用服务,而不是使用根范围