Angular Js 事件传递、广播、Controller间数据交互
架设有这么三个Controller,Golbal在外面,另外两个在里面
- GlobalController
- UserListController
- UserDetailController
UserListController触发一个事件change_user冒泡到GlobalController中
$scope.selectUser = function(user) {
$scope.active_uid = user.uid;
$scope.$emit('change_user',user.uid,user);//后面可以传若干个参数
};
GlobalController响应这个事件
$scope.$on('change_user', function(event,uid,user){
//TODO something
});
GlobalController广播一个事件到自己和所有的子Controller中
$scope.$on('change_user', function(event,uid,user){
$scope.$broadcast('parent_change_user',uid,user);//如果写成change_user就死循环了,因为这里广播的事件自己也能响应
});
UserDetailController接收广播
$scope.$on('parent_change_user', function(event,uid,user){
//TODO something
});