关于typescript:SAP-Spartacus-B2B-页面-Disable-Confirmation-对话框的显示原理

41次阅读

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

该按钮的实现位于 toggle-status.component.html 里,点击后,能够对以后显示的 B2B item 进行 activation 和 deactivation 操作。

toggle(item) 办法的实现:

如果以后 item 处于 active 状态,则以后 toggle 应该执行 deactivation 操作,调用通过构造函数注入的 messageService, 通过 add 办法,增加一个新的 message 对象。

这个对象的 timeout 值为 3000,意思是 3 秒后,confirmation 对话框主动敞开。

this.data$ 是一个 ReplaySubject, 其作用是在给定的工夫内,发送所有的曾经收到的缓冲区数据,当工夫过期后,将销毁之前曾经收到的数据,从新收集行将到来的数据。所以在结构的时候,须要给定两个值,一个是缓冲区的大小(bufferSize),一个是给定缓冲区存活的窗口工夫(windowTime),须要留神的是 ReplaySubject 所应用的缓冲区的策略是 FIFO.

咱们应用 ReplaySubject 来实现 3 秒后主动敞开 confirmation 对话框的成果。

这个 data$ 在 message.service.ts 里通过 get 办法被裸露给外界消费者:

对其感兴趣的 message.component.ts, 调用 messageService 的 get 办法拿到 ReplaySubject,而后订阅:

这样,运行时,message.component.ts 的 render 办法,绘制 confirmation 对话框:

那么对话框如何在 3 秒后主动敞开的?

Confirmation.message.component.ts 的 父类实现是 base-message.component.ts, 在其 ngOnInit 钩子函数里:

调用原生的 setTimeout, 设置 3 秒后主动敞开的行为。

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

正文完
 0