如何通过活动广播对象?
目前我正在尝试:
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'
答案 0 :(得分:7)
由于您在控制器准备接受消息之前广播,因此您的案例中没有输出。在控制器的作用域准备好收听消息之前,模块的run方法在应用程序的生命周期的早期执行。
这是说明这一点的jsFiddle,检查控制台,看看广播是在听众准备好之前发生的:http://jsfiddle.net/vPq2P/3/