zoukankan      html  css  js  c++  java
  • 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 了:

    更多Jerry的原创文章,尽在:"汪子熙":

  • 相关阅读:
    php命令注入
    mysql事物
    安装php环境
    移除服务器缓存实例
    show user profile synchronization tools
    manual start user profile import
    JSON is undefined. Infopath Form People Picker in SharePoint 2013
    asp.net web 应用站点支持域账户登录
    Load sharepoint envirement by powershell
    sharepoint 2016 download
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/15024346.html
Copyright © 2011-2022 走看看