Come posso trasmettere un oggetto attraverso un evento?Come posso trasmettere un oggetto in Angularjs?
Attualmente sto provando:
app.run ($rootScope) ->
message = {type: 'channel', action: 'create', data: { name: "ssss", id: 0}}
$rootScope.$broadcast('message', message)
angular.module('WebChat').controller 'ChannelController', ($scope) ->
$scope.$on 'message', (message) ->
console.log message
console.log 'hi'
Ma sto ottenendo alcuna uscita
Edit ho capito di lavoro. Sembra che il primo parametro della funzione di callback sia l'ambito. Ho dovuto cambiare il controller per:
angular.module('WebChat').controller 'ChannelController', ($scope) ->
$scope.$on 'message', (scope, message) ->
console.log message
console.log 'hi'
Ho una situazione simile, in cui ho bisogno di [carico YouTube IFrame API] (https://developers.google.com/youtube/iframe_api_reference#Getting_Started). Ho provato a inserire il codice di caricamento dentro run() e all'esterno cercando di caricarlo per ultimo, ma non importa dove lo metto, la trasmissione avviene sempre prima che il mio controller sia pronto per l'ascolto, a meno che non esegua un timeout di 1000 o più (1500 sembra funzionare meglio). C'è un modo per garantire una corretta lista degli ordini-> trasmesso senza utilizzare i timeout? So che la mia domanda può sembrare vagamente ampia, ma posso fornire maggiori dettagli se necessario. Grazie. – braincomb