Angularjs中的事件广播 —全面解析$broadcast,$emit,$
网络编程 2021-07-04 21:05www.168986.cn编程入门
狼蚁网站SEO优化长沙网络推广就为大家带来一篇Angularjs中的事件广播 —全面解析$broadcast,$emit,$on。长沙网络推广觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随长沙网络推广过来看看吧
Angularjs中不同作用域之间可以通过组合使用$broadcast,$emit,$on的事件广播机制来进行通信
介绍
$broadcast的作用是将事件从父级作用域传播至子级作用域,包括自己。格式如下$broadcast(eventName,args)
$emit的作用是将事件从子级作用域传播至父级作用域,包括自己,直至根作用域。格式如下$emit(eventName,args)
$on用于在作用域中监控从子级或父级作用域中传播的事件以及相应的数据。格式如下$on(event,data)
上述说明中,eventName是需要监控的事件的名称,$on 方法中的参数event是事件的相关对象,data是事件传播的数据。
在$on的方法中的event参数,有如下的属性和方法
事件属性/方法 功能性说明
事件属性/方法 | 功能性说明 |
---|---|
event.targetScope | 获取传播事件的作用域 |
event.currentScope | 获取接收事件的作用域 |
event.name | 传播的事件的名称 |
event.sPropagation() | 阻止事件进行冒泡传播,仅在$emit事件中有效 |
event.preventDefault() | 阻止传播事件的发生 |
event.defaultPrevented | 如果调用了preventDefault事件则返回true |
代码
<!DOCTYPE html> <html ng-app="myApp"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <meta charset="utf-8" /> <script src="ajjs/angularjs.js"></script> <script> var myApp = angular.module("myApp", []); //控制器Self myApp.controller("Self", function ($scope,$window) { //button的传播事件 $scope.toParent = function () { //注册一个向上传播的事件,eventName:'FromSelf', data:oneObject $scope.$emit("FromSelf", { divName: "Self", description: "向父传播数据" }); }; $scope.toChild = function () { //注册一个向下传播的事件,eventName:'FromSelf', data:oneObject $scope.$broadcast("FromSelf", { divName: "Self", description: "向子传播数据" }); }; $scope.name = "Self"; $scope.$on("FromChild", function (event, data) { $window.alert("当前节点" + event.currentScope.name + "截获到了来自" + data.divName + "的事件" + event.name + ",它的作用是" + data.description); }); }); //控制器Parent myApp.controller("Parent", function ($scope, $window) { $scope.name = "Parent"; //$on用于事件 $scope.$on("FromSelf", function (event, data) { $window.alert("当前节点" + event.currentScope.name + ",截获到了来自" + data.divName + "的事件" + event.name + ",它的作用是" + data.description); }); $scope.$on("FromChild", function (event, data) { $window.alert("当前节点" + event.currentScope.name + ",截获到了来自" + data.divName + "的事件" + event.name + ",它的作用是" + data.description); }); }); //控制器Child myApp.controller("Child", function ($scope, $window) { $scope.name = "Child"; //$on用于截获来自父级作用域的事件 $scope.$on("FromSelf", function (event, data) { $window.alert("当前节点" + event.currentScope.name +"截获到了来自" + data.divName + "的事件" + event.name + ",它的作用是" + data.description); }); //button的传播事件 $scope.toTop = function () { //注册一个向上传播的事件,eventName:'FromChild', data:oneObject $scope.$emit("FromChild", { divName: "Child", description: "向上播数据" }); }; }); </script> </head> <body> <form name="test"> <div ng-controller="Parent"> 这里是父级Div <div ng-controller="Self"> 这里是子级SelfDiv <input type="button" ng-click="toParent()" value="向ParentDiv传播事件" /> <input type="button" ng-click="toChild()" value="向ChildDiv传播事件" /> <div ng-controller="Child"> 这里是子级ChildDiv <input type="button" ng-click="toTop()" value="向上传播事件" /> </div> </div> <div ng-controller="Borther"> 这里是Self的兄弟BortherDiv </div> </div> </form> </body> </html>
Code
效果
其他属性
以上这篇Angularjs中的事件广播 —全面解析$broadcast,$emit,$on就是长沙网络推广分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程