在我的应用程序中,我正在定义一个自定义事件,我希望它具有默认处理程序。如果任何控制器/服务想要覆盖默认处理,他们可以通过添加自己的处理程序来实现。
为了实现这个场景,我在$ 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。
我想避免添加我自己的维护事件处理程序列表和逻辑的逻辑。确保它们按所需顺序执行。有没有办法实现这个角度?感谢。
答案 0 :(得分:1)
唯一的优先概念'据我所知,角度来自于'指令'以及编译/链接的顺序。
执行此操作的黑客方法将放在该范围内的指令中的事件处理程序中,并按照表示您的顺序的任何优先级对它们进行排序。