AngularJSでオブジェクトをブロードキャストできますか?
-
11-12-2019 - |
質問
イベントを通してオブジェクトをブロードキャストできますか?
現在私は試しています:
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 /
所属していません StackOverflow