父页面监听iframe路由变化_AngularJs作用域事件路由与广播,$broadcast和$emit的使用方法...

基于AngularJS入门与进阶(江荣波 著)这本书的笔记

AngularJS 1.x的demo

AngularJS1.x和Angular2,4,5是不一样的两个东西,构建方式,语法,都很多不同


AngularJs 作用域支持两种传送方法:

  • 事件从子作用域路由到父作用域中
  • 事件从父作用域广播到所有子作用域中

与AngularJS作用域事件相关的方法有$on()、$emit()、$broadcast()

$emit() 方法实现事件上级路由

$emit方法用于实现事件从子路由作用域路由到父作用域中。$emit方法第一个尝试为事件名称,后面可以传入一个或多个参数,这些参数能够被传递到父作用域注册的事件监听中

示例代码

    Title
Parent:{{parent}}
child:
8ed575da52543fa5ec0900c94b74ef1e.gif

代码演示可以看出,当子作用域值改变后,可以通过父级的$on方法监听到,并作出动作。$on 方法有两个参数,第一个参数为监听的事件名childInfoEvent,第二个参数为事件监听器定义部分,function中有两个参数,第一个参数为事件对象,第二个参数为子作用域中传递的数据

$broadcast() 方法实现事件下级广播

$broadcast() 方法的使用和$emit()方法相同,不同点是他是向子作用域广播事件

示例代码

    Title
Parent:
child1:{{child}}
child2:{{child}}
58d87632c61039c38d434d555b71978d.gif
同级广播

$broadcast() 和$emit()方法分别实现向下和向上的事件广播和路径,这里做一个简单的实现同级广播的方法

    Title
brother1:
brother2:
c826c18d1c4f19c93ee4b8e7b69ed5ef.gif

$rootScope为所有的作用域的根作用域,所以我们在根作用域做向下广播

` $rootScope.$broadcast("valueInfoEvent", n);`

当子作用域中的值发生变化时会调用服务中的changeValue 方法来广播这个事件,同时每个作用域又都在监听`$on("valueInfoEvent") `事件并作出相应处理,就实现了同级广播。

作用域对像$on()方法

上面不管是向上,向下,同级广播都用到了$on()方法,$on 方法有两个参数,第一个参数为监听的事件名childInfoEvent,第二个参数为事件监听器定义部分,function中有两个参数,第一个参数为事件对象,第二个参数为子作用域中传递的数据

$scope.$on("valueInfoEvent",function (event,data) {                $scope.browser = data;            })

data没什么说的,就是传递数据,event有些内置属性和方法

  • event.name:事件的名称。
  • event.targetScope:事件源作用域对象。
  • event.currentScope:当前作用域对象。
  • event.stopPropagation():这个方法用于停止事件的进一步传播。需要注意的是,该方法只对向父作用域路由事件起作用,当在某个事件监听处理方法中调用事件对象的stopPropagation()方法后,事件将不会再向上级父作用域路由。它对调用$broadcast()方法广播的事件不起作用。
  • event.preventDefault():这个方法实际上不会做什么操作,但是会设置defaultPrevented属性为true,直到事件监听器的实现者采取行动之前才会检查defaultPrevented的值。
  • event.defaultPrevented:如果调用了event.preventDefault()方法,那么该属性将被设置为true。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NumPy中的broadcast_to函数是用来将数组广播到指定形状的函数。广播是一种在不进行复制的情况下,使用较小的数组来操作较大的数组的机制。该函数接受两个参数,第一个参数是要广播的数组,第二个参数是目标形状。广播的规则是,将较小的数组在某些维度上进行复制,使得两个数组可以进行元素级别的操作。最终,较小的数组将会被复制到与较大的数组具有相同形状的位置上。 下面是一个使用broadcast_to函数的示例代码: ```python import numpy as np a = np.array([[1, 2, 3]]) b = np.broadcast_to(a, (3, 3)) print("原数组 a:") print(a) print("调用 broadcast_to 函数之后的数组 b:") print(b) ``` 运行结果如下: ``` 原数组 a: [[1 2 3]] 调用 broadcast_to 函数之后的数组 b: [[1 2 3] [1 2 3] [1 2 3]] ``` 在这个示例中,我们创建了一个形状为(1, 3)的数组a,然后使用broadcast_to函数将其广播到形状为(3, 3)的数组b。由于广播的规则,数组a在第一个维度上被复制了3次,最终得到了与数组b具有相同形状的结果。 (出处: Python numpy.broadcast_to函数方法使用) (出处: Python numpy.expand_dims函数方法使用) (出处: Python numpy.squeeze函数方法使用)<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python numpy.broadcast_to函数方法使用](https://blog.csdn.net/a991361563/article/details/119977132)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python-Numpy多维数组--数组操作](https://blog.csdn.net/Odyssues_lee/article/details/85252366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值