题
如何通过事件播放对象?
目前我正在尝试:
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'
解决方案
在您的情况下,您没有输出,因为您在控制器准备好接受消息之前广播。在控制器的范围准备收听消息之前,模块的运行方法在应用程序的生命周期中非常早期执行。
以下是jsfiddle,说明了这一点,检查控制台以查看侦听器准备好之前的广播: http:// jsfiddle。网/ vpq2p / 3 /
不隶属于 StackOverflow