質問

イベントを通してオブジェクトをブロードキャストできますか?

現在私は試しています:

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'
.

しかし私は出力なし

編集 私はそれを働いた。コールバック関数の最初のパラメータはスコープであるようです。私はコントローラーを変更しなければなりませんでした:

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

役に立ちましたか?

解決

コントローラがメッセージを受け入れる準備ができている前のブロードキャスト以来、あなたはあなたのケースでは出力を得ていません。モジュールの実行方法は、コントローラのスコープがメッセージを聴く準備ができている前に、アプリケーションのライフサイクルの早い段階で実行されます。

これを示すJSフィイドルは、リスナーの準備が整った前にブロードキャストが発生するようにコンソールをチェックしてください。 http:// jsfiddle。ネット/ VPQ2P / 3 /

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top