angularjs学习:事件
2015-05-29 15:45
453 查看
angular事件系统并不与浏览器的事件系统相通,这意味着,我们只能在作用域上监听Angular事件而不是DOM事件。
angular事件传播:在嵌套的controller作用域链上是可以向下传播($broadcast)和向上传播($emit)。
用$broadcast赋的值,只能子级得到值;$emit赋的值,只能父级得到;而平级的什么都不能得到。
angular事件传播:在嵌套的controller作用域链上是可以向下传播($broadcast)和向上传播($emit)。
<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> .controller('SelfCtrl', function($scope) { $scope.click = function () { $scope.$broadcast('to-child', 'child'); $scope.$emit('to-parent', 'parent'); } }); .controller('ParentCtrl', function($scope) { $scope.$on('to-parent', function(d,data) { console.log(data); //父级能得到值 }); $scope.$on('to-child', function(d,data) { console.log(data); //子级得不到值 }); }); .controller('ChildCtrl', function($scope){ $scope.$on('to-child', function(d,data) { console.log(data); //子级能得到值 }); $scope.$on('to-parent', function(d,data) { console.log(data); //父级得不到值 }); }); .controller('BroCtrl', function($scope){ $scope.$on('to-parent', function(d,data) { console.log(data); //平级得不到值 }); $scope.$on('to-child', function(d,data) { console.log(data); //平级得不到值 }); });
用$broadcast赋的值,只能子级得到值;$emit赋的值,只能父级得到;而平级的什么都不能得到。
相关文章推荐
- AngularJS ng-repeat下使用ng-model
- Angularjs中的ng-class
- angular简单用法备忘(用户管理CRUD)
- AngularJS入门之Services
- AngularJS快速开始
- 快速搭建Web环境 Angularjs + Express3 + Bootstrap3
- AngularJS 学习
- AngularJS结构简介
- 用angularjs 模块时Error: [ng:areq] Argument 'controller' is not a function,
- AngularJS的学习--ng-show/ng-hide/ng-if和ng-switch
- AngularJS 1.4.0下载
- AngularJS 之 Factory vs Service vs Provider
- AngularJs angular.element
- angularjs 自带的过滤器
- AngularJs 控制台
- AngularJS ng-Grid CurrentPage数字无法显示
- AngularJs 表单提交按钮状态
- AngularJS中几种Providers(Factory, Service, Provider)的区别
- Angular ngTable 按钮选择
- angularjs