2
在我的应用程序中,我正在定义一个自定义事件,我希望其中有默认处理程序。如果任何控制器/服务想要重写默认处理,他们可以通过添加它们自己的处理程序来完成。Angular:自定义事件处理程序和默认处理程序的顺序
为了实现这种情况,我在$ rootScope上添加了默认处理程序&在$ rootScope上广播了事件。我期待着像下面的工作。
//defined in .run block
$rootScope.$on('customEvent', defaultHandler);
//defined inside a controller
$scope.$on('customEvent', function customHandler(e){
// handle event
e.preventDefault();
});
我的问题是,因为.RUN块被执行在执行任何控制器之前,将始终的DefaultHandler首先得到注册。因此,它首先被执行&然后执行自定义处理程序。我想最后执行defaultHandler。
我想避免添加我自己的维护事件处理程序列表&的逻辑,确保它们按所需顺序执行。有没有办法实现这个角度?谢谢。
在我的情况下,由于事件处理程序可能跨越视图和控制器,指令的使用是不可能的。我最终为自定义事件创建了自己的自定义事件队列。 – Nilesh 2015-01-23 18:38:44