在所有事件都被触发时,以角度和触发方式观察多个事件

时间:2016-09-07 10:59:43

标签: javascript angularjs javascript-events event-handling

是否可以等待一系列事件触发然后执行一个函数?我知道,可以单独观看所有事件并跟踪哪些事件已经触发,但是没有任何内置功能吗?

这样的事情:

$scope.$on(["event1", "event2", "event3"], function () {
    // All events fired do stuff
});

事件的播放方式如下:

$rootScope.$broadcast('event1');

1 个答案:

答案 0 :(得分:-1)

很抱歉,本来可以发表评论,但还没有足够的声誉做到这一点:)

我认为实际上没有这样的东西,但是一个(可能有些明显的)问题是,如果你以同样的方式处理所有事件,为什么不给它们所有相同的名字呢?

或者,如果它不在您的控制之下(例如,它们来自外部库),您可以只定义一个单独的命名函数,然后将每个侦听器指向该命名函数:

["event1", "event2", "event3"].forEach(function (eventName) {
    $scope.$on(eventName, listenerFunction);
});

function listenerFunction (event, data) {
    // do something with event and data
}