有没有办法在AngularJS中同时订阅多个事件?

时间:2013-09-18 06:46:13

标签: javascript events angularjs

有没有办法将多个事件名称传递给$on方法,并为所有这些事件分配相同的回调?

基本上,我正在寻找像$scope.$on('event1 event2 event3', sameCallback);这样的东西。 DocumentationeventName是一个字符串,并没有提到允许多个事件名称。我应该为此编写自己的便利方法吗?

2 个答案:

答案 0 :(得分:1)

你可以自己编写代码,就像这样......

[{event: "event1", callback:function(){}}, {event:'event2'}].forEach(function(item) {
    scope.$on(item.event, (item.callback || function(){}))
});

答案 1 :(得分:1)

尝试包装默认功能。我认为设置事件是一个好主意:

context.on = function(events, callback) {
 var events_arr = events.split(" ");

 angular.each(events_arr, function(event) {

    $scope.$on(event, callback);

 },this)

}

这很粗糙,但我想你知道我的意思