• $emit只能向parent controller传递event与data( $emit(name, args) )
  • $broadcast只能向child controller传递event与data( $broadcast(name, args) )
  • $on用于接收event与data( $on(name, listener) )
    <div ng-controller="ParentCtrl">              <!--父级-->
    <div ng-controller="SelfCtrl"> <!--自己-->
    <a ng-click="click()">click me</a>
    <div ng-controller="ChildCtrl"></div> <!--子级-->
    </div>
    <div ng-controller="BroCtrl"></div> <!--平级-->
    </div>
    var app = angular.module('myApp', []);
    app.controller('SelfCtrl', function($scope) {
    $scope.click = function () {
    $scope.$broadcast('to-child', 'child');
    $scope.$emit('to-parent', 'parent');
    }
    }); app.controller('ParentCtrl', function($scope) {
    $scope.$on('to-parent', function(event,data) {
    console.log('ParentCtrl', data); //父级能得到值
    });
    $scope.$on('to-child', function(event,data) {
    console.log('ParentCtrl', data); //子级得不到值
    });
    }); app.controller('ChildCtrl', function($scope){
    $scope.$on('to-child', function(event,data) {
    console.log('ChildCtrl', data); //子级能得到值
    });
    $scope.$on('to-parent', function(event,data) {
    console.log('ChildCtrl', data); //父级得不到值
    });
    }); app.controller('BroCtrl', function($scope){
    $scope.$on('to-parent', function(event,data) {
    console.log('BroCtrl', data); //平级得不到值
    });
    $scope.$on('to-child', function(event,data) {
    console.log('BroCtrl', data); //平级得不到值
    });
    });

    在$on的方法中的event事件参数,其对象的属性和方法如下

    事件属性 目的
    event.targetScope 发出或者传播原始事件的作用域
    event.currentScope 目前正在处理的事件的作用域
    event.name 事件名称
    event.stopPropagation() 一个防止事件进一步传播(冒泡/捕获)的函数(这只适用于使用`$emit`发出的事件)
    event.preventDefault() 这个方法实际上不会做什么事,但是会设置`defaultPrevented`为true。直到事件监听器的实现者采取行动之前它才会检查`defaultPrevented`的值。
    event.defaultPrevented 如果调用了`preventDefault`则为true

随机推荐

  1. POJ 2923 【01背包+状态压缩/状压DP】

    题目链接 Emma and Eric are moving to their new house they bought after returning from their honeymoon. F ...

  2. springMVC笔记:jsp页面获取后台数据记录列表

    1.读取数据库中的记录List<HashMap<String,String>> attributes; 2.Controller构造Model如下: @RequestMappi ...

  3. 线段树【p2801】教主的魔法

    Description 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.--.N. 每个人的 ...

  4. What makes grep consider a file to be binary?

    grep -a worked for me: $ grep --help [...] -a, --text equivalent to --binary-files=text

  5. idea点击RUN启动报错: Broken configuration due to unavailable plugin or invalid configuration dat

    今天照常打开idea,突然发现之前的启动配置出问题了,随后报了一个这个错: Run Configuration Error: Broken configuration due to unavailab ...

  6. kubernetes API Server安全

    用户访问API Server(以下简称Server),K8S的安全检查步骤:认证和授权. 认证解决用户是谁的问题,就是验证用户名密码;授权解决用户能做什么的问题,就是检查该用户是否拥有权限访问请求的资 ...

  7. selenium 截图

    http://blog.csdn.net/u010953692/article/details/78320025 # coding:utf-8 # coding:cp936 from selenium ...

  8. phpMyAdmin搭建及管理多台数据库服务器

    phpMyAdmin搭建及管理多台数据库服务器 环境说明: 系统版本    CentOS 6.9 x86_64         软件版本    nginx-1.12.2        php-5.5. ...

  9. 关于Docker&kubernetes的一些问题

    本文是我自己在学习docker以及kubernetes的过程中遇到的一些问题,以及同事在听过培训之后一些问题,事后我自己去网上找些资料以及问一些资深大牛,我在此做一个归纳总结,将这些问题的解答做一个分 ...

  10. 如何使用CodeSmith批量生成代码

    在上一篇我们已经用PowerDesigner创建好了需要的测试数据库,下面就可以开始用它完成批量代码生成的工作啦. 下面我会一步步的解释如何用CodeSmith实现预期的结果的,事先声明一下,在此只做 ...