如下图所示,点击Collapse按钮:

该动作处理的入口:

this.unitTreeService.collapseAll

  /*** Sets the global toggle state to _collapsed_ and clears the toggle state* for individual units.*/collapseAll() {this.globalToggle$.next(TREE_TOGGLE.COLLAPSED);this.treeToggle$.next(new Map());}

上图两个Observable都是BehaviorSubject,一个类型是TREE_TOGGLE, 一个是map:

this.treeToggle$.next, 将new出来的Map发送给其Observers:

下图1标注的箭头函数,即treeToggle$使用pipe注册的observer之一:

箭头函数即下图this.project:

value就是该observers被next调用时,传入的输入参数:

箭头函数的返回结果,作为result,传入到this.destination.next的输入去:

this.parent指向SwitchMap:

this.destination指向下一个map:

触发Observable chain下一个节点的map Operator:

因为全局状态是Collapsed, 所以node.expanded值永远为false,进不了第90行if语句的分支:

最后convertListItem执行完毕:

只包含一个元素,因此最后的树结构只看到1个节点:

SAP Spartacus里unit list tree节点collapse all按钮的实现逻辑相关推荐

  1. SAP Spartacus里unit list tree节点expanded属性的赋值逻辑

    如下图所示:标识为1和2的unit, 其后台数据的expanded属性值,分别为true和false: 而SAP Commerce Cloud OCC API返回的数据里,根本没有这个字段: 这个属性 ...

  2. SAP Spartacus里unit list tree的页面显示和后台响应数据的对应关系

    如下图所示: 页面数据显示如下,其中Rustic包含6个直接子节点,分别是Rustic Retail,Rustic Services和test1-test4. 后台SAP Commerce Cloud ...

  3. SAP Spartacus Org Unit List响应回车案件的实现原理

    我在SAP Spartacus Org Unit List里,用tab键选中某个行项目后,敲回车键: 首先会在屏幕右半部份显示一个只包含布局不包含数据的页面: 待数据加载完成之后,右边也能显示完整的页 ...

  4. SAP Spartacus 里的 icon 设计

    同 SAP Fiori 一样,SAP Spartacus 里也有大量的自定义 icon 设计,比如下图的 iconTypes.RESET: 需要调用 iconLoader 获取 RESET icon ...

  5. Media Query在SAP Spartacus里的用途

    Media queries are useful when you want to modify your site or app depending on a device's general ty ...

  6. SAP Spartacus里的feature module

    SAP Spartacus里Component的使用受featureModule控制:

  7. SAP Spartacus organization unit list的实现Component

    SAP Spartacus B2B My Company功能里的org unit list实现: http://localhost:4200/powertools-spa/en/USD/organiz ...

  8. SAP Spartacus 里的 .release-it.json 文件

    在 SAP Spartacus package.json 里有一个依赖叫做 release-it: 这个工具的链接:https://github.com/release-it/release-it 这 ...

  9. 如何找到 SAP Spartacus 里某个 Component TypeScript 编译后生成的 JavaScript 位置

    需求 如何找到触发该网络请求的准确代码位置? 从 initiator 里查看调用栈上下文,一点头绪也没有. 找到触发该网络请求的控件的 selector:cx-register 在 Storefron ...

最新文章

  1. linux常用命令(转载)
  2. 自学编程是从python语言还是c语言开始-初中生想学编程,请问先学C语言好还是先学Python?...
  3. OpenCL2.0特性之SVM
  4. 桌面应用程序员简单尝试Rich JavaScript Application
  5. kill qz _e epi,eu,ex,exo out3
  6. documentElement vs body区别
  7. IDEA导入Maven项目,pom.xml文件中 有inspects a maven model for resolution problems报错 !!!!!!!!!!有用
  8. SpringBoot集成Flowable_Jsite待办任务菜单报500
  9. android开源tabview,TabBarView
  10. dumpstack_Java Thread类的静态void dumpStack()方法(带示例)
  11. Atitit enhance dev effect提升开发效率的十大原理与方法v3 u66.docx Atitit enhance dev effect提升开发效率的十大原理与方法v2 u66.do
  12. 一个cp命令引发的mongodb大量慢查询
  13. v2021年烷基化工艺考试题及烷基化工艺考试试卷
  14. 计算机二级考试用的什么Word,计算机二级考试内容大纲_计算机二级office考什么...
  15. 微信扫码提示在浏览器中打开的遮罩代码
  16. IDEA更新至2020版后Version Control窗口的还原问题
  17. 单播、广播、多播(组播)的概念和区别
  18. 20181212股票早盘
  19. 最新版chrome浏览器安装Chrome插件时出现“CRX-HEADER-INVALID“解决方法
  20. 实验---采用SOM网络进行聚类

热门文章

  1. Centos7下python2.x 和python3.x共存
  2. Vue组件实现tips的总结
  3. HTML5数据推送SSE原理及应用开发
  4. jquery验证表单 提交表单
  5. CPU/ABI显示No system images installed for this target的解决方案
  6. Java中 ArrayList类常用方法和遍历
  7. centos 6.5 安装mysql 5.6.35–libc.so.6(GLIBC_2.14)(64bit),libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
  8. 福州大学软件1715|W班-助教卞倩虹个人简介
  9. php结合redis实现高并发下的抢购、秒杀功能
  10. SSL 1760——商店选址问题(最短路)