use*_*761 8 javascript angularjs
如何通过事件广播对象?
目前我正在尝试:
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'
Run Code Online (Sandbox Code Playgroud)
但我没有输出
编辑 我得到了它的工作.似乎回调函数的第一个参数是范围.我不得不将控制器更改为:
angular.module('WebChat').controller 'ChannelController', ($scope) ->
$scope.$on 'message', (scope, message) ->
console.log message
console.log 'hi'
Run Code Online (Sandbox Code Playgroud)
由于您在控制器准备好接受消息之前进行广播,因此您的案例中没有输出.在控制器的作用域准备好收听消息之前,模块的run方法在应用程序的生命周期的早期执行.
以下是说明这一点的jsFiddle,检查控制台,看看广播是在听众准备好之前发生的:http://jsfiddle.net/vPq2P/3/
| 归档时间: |
|
| 查看次数: |
24177 次 |
| 最近记录: |