Pregunta

¿Cómo puedo transmitir un objeto a través de un evento?

Actualmente estoy intentando:

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 no estoy recibiendo ninguna salida

editar Lo tengo trabajando.Parece que el primer parámetro de la función de devolución de llamada es el alcance.Tuve que cambiar el controlador a:

angular.module('WebChat').controller 'ChannelController', ($scope) -> 
    $scope.$on 'message', (scope, message) ->
        console.log message
        console.log 'hi'

¿Fue útil?

Solución

No está obteniendo ninguna salida en su caso ya que usted es de transmisión antes de que un controlador esté listo para aceptar mensajes .El método de ejecución del módulo se ejecuta muy temprano en el ciclo de vida de la aplicación, antes de que los alcances del controlador estén listos para escuchar los mensajes.

Aquí está el JSFiddle que ilustra esto, verifique la consola para ver que ocurra la transmisión antes de que un oyente esté listo: http:// jsfiddle.NET / VPQ2P / 3 /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top