AngularJS的学习--$on、$emit和$broadcast的使用
来源:互联网 发布:php视频网站 编辑:程序博客网 时间:2024/06/05 07:59
- $emit只能向parent controller传递event与data
- $broadcast只能向child controller传递event与data
- $on用于接收event与data
例子如下
html代码
<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>
js代码
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); //平级得不到值 }); });
最终结果
ParentCtrl child
ChildCtrl parent
$emit和$broadcast可以传多个参数,$on也可以接收多个参数。
在$on的方法中的event事件参数,其对象的属性和方法如下
1 0
- AngularJS的学习--$on、$emit和$broadcast
- AngularJS的 $on、$emit和$broadcast使用
- AngularJS $on、$emit和$broadcast的使用
- AngularJS $on、$emit和$broadcast的使用
- AngularJS的学习 $on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- AngularJS的学习 $on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- AngularJS的学习--$on、$emit和$broadcast的使用
- 第三届蓝桥杯【省赛试题6】大数乘法
- 消失的postmaster进程
- 论文笔记:Recurrent Models of Visual Attention
- Spark配置参数中英文对照
- java 中 map.get(key) 的类型转换
- AngularJS的学习--$on、$emit和$broadcast的使用
- 懒汉处理dapper字段名与属性名的映射方式
- 树链剖分
- CRichEditCtrl使用CHARFORMAT这个结构设置字体,颜色,字号
- Linux下用GDB调试多线程程序
- gemotion安装apk出现的INSTALL_FAILED_NO_MATCHING_ABIS错误解决方法
- mac 彻底卸载 node
- 一个三年以上老项目加入React Native 模块的过程
- 腾讯云服务器部署JavaWeb项目