是否可以等待一系列事件触发然后执行一个函数?我知道,可以单独观看所有事件并跟踪哪些事件已经触发,但是没有任何内置功能吗?
这样的事情:
$scope.$on(["event1", "event2", "event3"], function () {
// All events fired do stuff
});
事件的播放方式如下:
$rootScope.$broadcast('event1');
答案 0 :(得分:-1)
很抱歉,本来可以发表评论,但还没有足够的声誉做到这一点:)
我认为实际上没有这样的东西,但是一个(可能有些明显的)问题是,如果你以同样的方式处理所有事件,为什么不给它们所有相同的名字呢?
或者,如果它不在您的控制之下(例如,它们来自外部库),您可以只定义一个单独的命名函数,然后将每个侦听器指向该命名函数:
["event1", "event2", "event3"].forEach(function (eventName) {
$scope.$on(eventName, listenerFunction);
});
function listenerFunction (event, data) {
// do something with event and data
}