带命名组的AngularJS routeprovider停止控制器的多个实例

带命名组的AngularJS routeprovider停止控制器的多个实例,angularjs,route-provider,Angularjs,Route Provider,当我通过设置包含命名组的routeprovider时('/search/:searchString',{当为每个不同的:searchString加载页面时,它将加载分配的控制器的新实例 当我有一个$rootScope.$on('searchUpdated')时,这会给我带来一个问题,,因为它会对控制器每个实例上的广播消息做出反应 是否有办法使其仅加载一个控制器并对每个请求使用相同的控制器,如果没有,是否有办法在页面离开时销毁控制器。对于遇到类似问题的任何人: 控制器已销毁,但在$rootScop

当我通过
设置包含命名组的routeprovider时('/search/:searchString',{
当为每个不同的
:searchString
加载页面时,它将加载分配的控制器的新实例

当我有一个
$rootScope.$on('searchUpdated')时,这会给我带来一个问题,
,因为它会对控制器每个实例上的广播消息做出反应

是否有办法使其仅加载一个控制器并对每个请求使用相同的控制器,如果没有,是否有办法在页面离开时销毁控制器。

对于遇到类似问题的任何人:

控制器已销毁,但在
$rootScope
上注册的侦听器仍然存在,因为
$rootScope
从未销毁


问题似乎是您从每个控制器实例在
$rootScope
上注册了一个侦听器。

控制器可能已被销毁,但在
$rootScope
上注册的侦听器不会去任何地方,因为
$rootScope
从未被销毁。您应该发布更多代码,但问题似乎是您的r从每个控制器实例在
$rootScope
上注册一个侦听器。你就在那里的钱上。我在rootScope上注册了它:这很容易被忽略。