Domanda

Come posso trasmettere un oggetto attraverso un evento?

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 non sto ottenendo alcuna output

Modifica L'ho funzionato.Sembra che il primo parametro della funzione di callback sia lo scopo.Ho dovuto cambiare il controller su:

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

È stato utile?

Soluzione

Non stai ottenendo alcuna output nel tuo caso dal momento che sei Broadcasting prima di un controller è pronto per accettare i messaggi .Il metodo di esecuzione del modulo viene eseguito molto presto nel ciclo di vita dell'applicazione, prima che gli scopi del controller siano pronti ad ascoltare i messaggi.

Ecco il JSFIDDLE che illustra questo, controlla la console per vedere quella trasmissione succede prima che un ascoltatore sia pronto: http:// jsfiddle.NET / VPQ2P / 3 /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top