架设有这么三个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 });