我认为这一定是一个非常普遍的问题,让我们说像这样的路线
$routeProvider
.when('/producer', {
templateUrl: 'ui/producer.html',
controller: 'ProducerCtrl'
})
.when('/consumer', {
templateUrl: 'ui/consumer.html',
controller: 'ConsumerCtrl'
})
根据我对 $scope 生命周期的理解,每次路由发生时,都会创建和初始化一个新的范围/控制器,而旧的会死掉。这会导致在给定的时间有生产者或消费者控制器活着,但不是两者兼而有之。我已经使用 angular Batarang 观察到了这一点。结果,我无法将事件从生产者发送到消费者,反之亦然。
这是非常消耗的,因为事件是为控制器之间的通信而设计的。或者它只适用于控制器和指令?
我确定我错过了一些东西,我不敢相信设计是这样的。
更新:解决方案仅在 rootScope 上触发/侦听所有事件,它可以工作。但我仍然想知道 angularjs 打算以这种方式设计。