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的原创文章,尽在:"汪子熙":

  • 相关阅读:
    CMake 手册详解(十九)
    CMake 手册详解(二十三)
    CMake 手册详解(二十)
    xtrabackupex xbstream 流备份还原(转载)
    xtrabackup 安装与使用(转载)
    怎么样写好一篇技术博客
    python为什么需要符号表
    cmake的一些基本概念及源码结构
    让IT工作者过劳的13个坏习惯
    SHTML和HTML的区别
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/15024346.html
Copyright © 2011-2022 走看看