2014-11-20 20 views
7

Esiste una direttiva integrata, come ng-click, che emette un evento anziché chiamare una funzione? Voglio fare qualcosa di simile:

HTML:

<button ng-click-emit="foo" ng-click-emit-model="model.bar">Emit foo</button> 

regolatore bambini:

$scope.model = {bar: 'baz'}; 

regolatore principale:

$scope.$on('foo', function(event, arg) { 
    console.log(arg); // prints 'baz' 
}); 

risposta

12

ho capito: basta chiamare il campo di applicazione del $emit funzione direttamente da ng-click. Quindi, il codice HTML nel mio esempio sarebbe diventato:

<button ng-click="$emit('foo', model.bar)">Emit foo</button> 

Lo stesso dovrebbe funzionare per $broadcast troppo.

Problemi correlati