2013-09-18 3 views
0

Есть ли способ передать несколько имен событий методу $on и назначить одинаковый ответ на все эти события?Есть ли способ подписаться на несколько событий сразу в AngularJS?

В основном, я ищу что-то вроде $scope.$on('event1 event2 event3', sameCallback);. Documentation говорит, что eventName является строкой и не упоминает о наличии нескольких имен событий. Должен ли я писать свой собственный метод удобства только для этого?

ответ

1

попробуйте просто обернуть по умолчанию функции. Я думает, что это хорошая идея, набор событий:

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

angular.each(events_arr, function(event) { 

    $scope.$on(event, callback); 

},this) 

} 

это грубо, но я думаю, вы знаете, что я имею в виду

1

Вы можете написать его самостоятельно, что-то подобное ...

[{event: "event1", callback:function(){}}, {event:'event2'}].forEach(function(item) { 
    scope.$on(item.event, (item.callback || function(){})) 
}); 
Смежные вопросы