关于sap:Subject-在-SAP-Spartacus-Popover-Component-中的应用

38次阅读

共计 644 个字符,预计需要花费 2 分钟才能阅读完成。

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

正文完
 0