Pergunta

Como posso transmitir um objeto através de um evento?

Atualmente eu estou tentando:

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'

Mas eu estou ficando sem saída

Editar Eu tenho que trabalhar.Parece que o primeiro parâmetro da função de retorno de chamada é o escopo.Eu tive que alterar o controlador para:

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

Solução

Você está ficando sem saída, no seu caso já que você está de radiodifusão antes de um controlador está pronto para aceitar mensagens.O módulo de execução do método é executado muito cedo na aplicação do ciclo de vida, antes do controlador de escopos estão prontos para ouvir as mensagens.

Aqui é o jsFiddle que ilustra isso, verifique o console para ver que a transmissão ocorre antes de um ouvinte está pronto: http://jsfiddle.net/vPq2P/3/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top