¿Cómo puedo transmitir un objeto a través de un evento?¿Cómo puedo transmitir un objeto en Angularjs?
Actualmente estoy tratando:
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'
Pero estoy recibiendo ninguna salida
Editar Lo tengo trabajo. Parece que el primer parámetro de la función de devolución de llamada es el alcance. Tenía que cambiar el controlador para:
angular.module('WebChat').controller 'ChannelController', ($scope) ->
$scope.$on 'message', (scope, message) ->
console.log message
console.log 'hi'
que tienen una situación similar, donde necesito [carga de YouTube IFrame API] (https://developers.google.com/youtube/iframe_api_reference#Getting_Started). Intenté poner el código de carga dentro de run() y fuera tratando de cargarlo al final, pero no importa dónde lo coloque, la transmisión siempre ocurre antes de que mi controlador esté listo para escuchar, a menos que haga un tiempo de espera de 1000 o más (1500 parece funcionar mejor). ¿Hay alguna forma de garantizar el orden correcto para escuchar-> emitir sin usar tiempos de espera? Sé que mi pregunta puede parecer vagamente amplia, pero puedo proporcionar más detalles si es necesario. Gracias. – braincomb