Como posso transmitir um objeto em Angularjs?
-
11-12-2019 - |
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'
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