当前位置: 首页 > Web前端 > JavaScript

Subject在SAPSpartacusPopover组件中的应用

时间:2023-03-27 13:10:18 JavaScript

Subject是Rxjs中的一个工具对象。Subject是一种特殊类型的Observable,它允许将一个值多播给许多Observer。主题就像EventEmitter。每个Subject都是一个Observable和一个Observer。您可以订阅一个主题,您可以在feed值以及错误和完成情况下调用next。该属性定义在PopoverComponent上:其赋值操作发生在PopoverDirective的代码中:当鼠标或键盘触发PopoverComponent的关闭按钮时,触发注册的关闭事件处理程序:在close事件处理程序中,通过Subject向其侦听器广播CLOSE_BUTTON_CLICK或CLOSE_BUTTON_KEYDOWN事件。在PopoverDirective中,定义了所有可以触发PopoverComponent关闭的事件,如上图所示。Popover指令是这些事件的监听器。这里有两个问题:handlePopverEvents是什么时候被谁调用的?为什么Directive的close函数负责关闭PopoverComponent?对于第一个问题,线索在这里:PopoverDirective的eventSubject负责监听事件,然后将这个eventSubject实例赋值给负责发送事件的Component实例:关闭操作:如果注释掉一行上图中的155,不能关闭Popover组件:更多Jerry的原创文章在这里:《汪子熙》: