Ho una direttiva che associa alcune funzioni allo scope locale con $scope.$on
.
È possibile associare la stessa funzione a più eventi in una chiamata?
Idealmente mi piacerebbe essere in grado di fare qualcosa del genere:
app.directive('multipleSadness', function() {
return {
restrict: 'C',
link: function(scope, elem, attrs) {
scope.$on('event:auth-loginRequired event:auth-loginSuccessful', function() {
console.log('The Ferrari is to a Mini what AngularJS is to ... other JavaScript frameworks');
});
}
};
});
Ma questo non funziona. Lo stesso esempio con la stringa del nome evento separata da virgole sostituita con ['event:auth-loginRequired', 'event:auth-loginConfirmed']
non distrugge nessuno dei due.
quello che funziona è questo:
app.directive('multipleSadness', function() {
return {
restrict: 'C',
link: function(scope, elem, attrs) {
scope.$on('event:auth-loginRequired', function() {
console.log('The Ferrari is to a Mini what AngularJS is to ... other JavaScript frameworks');
});
scope.$on('event:auth-loginConfirmed', function() {
console.log('The Ferrari is to a Mini what AngularJS is to ... other JavaScript frameworks');
});
}
};
});
Ma questo non è l'ideale.
È possibile associare più eventi alla stessa funzione in una volta sola?
Grazie per le informazioni aggiuntive sulla propagazione degli eventi e sugli ID degli eventi, sapendo questo capisco perché ciò che chiedo non è nativamente possibile. Gli eventi hanno ascoltatori diversi, tuttavia questo ascoltatore deve eseguire la stessa azione su più eventi. –
Dopo l'esame ho refactored il mio codice per essere più * Angular *. Ci sono ancora due eventi, ma poiché significano cose diverse (nel refactoring), non c'è motivo di vincolarli entrambi alla stessa funzione. Grazie per i suggerimenti. –
Nessun problema. Sono contento di poterti aiutare. – testing123