2016-07-06 23 views
9

Mi chiedevo se posso avere un $ trasmissione $ avanti con più parametri qualcosa di simile:

$scope.$broadcast('event',$scope.item, $scope.item); 

E 'possibile avere qualcosa di simile o qualcosa di simile, in ogni caso?

Grazie in anticipo!

risposta

16

Basta mettere i parametri in un oggetto:

$scope.$broadcast('event', { a: item1, b: item2 }) 

quindi accedervi dal secondo argomento della richiamata:

$scope.$on('event', function(event, opt) { 
// access opt.a, opt.b 
}); 

O se utilizzando la sintassi ES2015 è possibile decomprimere gli argomenti:

$scope.$on('event', (event, {a,b}) => { 
// access them just as a, b 
}); 
+0

Hi! per favore come possono ottenere gli argomenti in $ on? –

+0

@Llg Secondo parametro del callback, ho aggiornato la risposta. – Duncan

+0

Grazie mille! –

0

La documentazione dice: 'Opzionale uno o più argomenti che verranno passati al listener di eventi

$rootScope.$emit(event_name, p1, p2. p3);

+0

Questo non è un evento '$ broadcast'. – maxathousand