打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Subject 在 SAP Spartacus Popover Component 中的应用

Subject 是 Rxjs 里的一个工具对象。

Subject 是一种特殊类型的 Observable,它允许将值多播到许多观察者。 Subject 就像 EventEmitters。

每个 Subject 都是 Observable 和 Observer。 您可以订阅一个主题,您可以调用 next 提要值以及错误和完成。

这个属性定义在 Popover Component 上:

其赋值操作发生在 Popover Directive 的代码里:

当 Popover Component 的 Close 按钮被鼠标或者键盘触发时,触发注册好的 close 事件处理函数:

在 close 事件处理函数里,通过 Subject 向其监听者广播 CLOSE_BUTTON_CLICK 或者 CLOSE_BUTTON_KEYDOWN 事件。

在 Popover Directive 里定义了所有能够触发 Popover Component 关掉的事件,如上图所示。

Popover Directive 是这些事件的监听者。

这里有两个问题:

  1. handlePopverEvents 什么时候被谁调用?

  2. 为什么是 Directive 的 close 函数负责关闭 Popover Component?

对于第一个问题,这里能看出端倪了:Popover Directive 的 eventSubject 负责监听事件,然后这个 eventSubject 实例赋给 Component 实例,后者负责发送事件:

close 操作:

如果注释掉上图第155行,则无法关闭 Popover Component 了:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在Unity3d中实现观察者模式
Vue3.x 从零开始(四)—— 更完善的组件传参
RxJS
拥抱 RxJava(三):关于 Observable 的冷热,常见的封装方式以及误区
Rxjs 核心概念
RxJS快速入门
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服