SAP Spartacus里unit list tree节点collapse all按钮的实现逻辑
如下图所示,点击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按钮的实现逻辑相关推荐
- SAP Spartacus里unit list tree节点expanded属性的赋值逻辑
如下图所示:标识为1和2的unit, 其后台数据的expanded属性值,分别为true和false: 而SAP Commerce Cloud OCC API返回的数据里,根本没有这个字段: 这个属性 ...
- SAP Spartacus里unit list tree的页面显示和后台响应数据的对应关系
如下图所示: 页面数据显示如下,其中Rustic包含6个直接子节点,分别是Rustic Retail,Rustic Services和test1-test4. 后台SAP Commerce Cloud ...
- SAP Spartacus Org Unit List响应回车案件的实现原理
我在SAP Spartacus Org Unit List里,用tab键选中某个行项目后,敲回车键: 首先会在屏幕右半部份显示一个只包含布局不包含数据的页面: 待数据加载完成之后,右边也能显示完整的页 ...
- SAP Spartacus 里的 icon 设计
同 SAP Fiori 一样,SAP Spartacus 里也有大量的自定义 icon 设计,比如下图的 iconTypes.RESET: 需要调用 iconLoader 获取 RESET icon ...
- Media Query在SAP Spartacus里的用途
Media queries are useful when you want to modify your site or app depending on a device's general ty ...
- SAP Spartacus里的feature module
SAP Spartacus里Component的使用受featureModule控制:
- SAP Spartacus organization unit list的实现Component
SAP Spartacus B2B My Company功能里的org unit list实现: http://localhost:4200/powertools-spa/en/USD/organiz ...
- SAP Spartacus 里的 .release-it.json 文件
在 SAP Spartacus package.json 里有一个依赖叫做 release-it: 这个工具的链接:https://github.com/release-it/release-it 这 ...
- 如何找到 SAP Spartacus 里某个 Component TypeScript 编译后生成的 JavaScript 位置
需求 如何找到触发该网络请求的准确代码位置? 从 initiator 里查看调用栈上下文,一点头绪也没有. 找到触发该网络请求的控件的 selector:cx-register 在 Storefron ...
最新文章
- linux常用命令(转载)
- 自学编程是从python语言还是c语言开始-初中生想学编程,请问先学C语言好还是先学Python?...
- OpenCL2.0特性之SVM
- 桌面应用程序员简单尝试Rich JavaScript Application
- kill qz _e epi,eu,ex,exo out3
- documentElement vs body区别
- IDEA导入Maven项目,pom.xml文件中 有inspects a maven model for resolution problems报错 !!!!!!!!!!有用
- SpringBoot集成Flowable_Jsite待办任务菜单报500
- android开源tabview,TabBarView
- dumpstack_Java Thread类的静态void dumpStack()方法(带示例)
- Atitit enhance dev effect提升开发效率的十大原理与方法v3 u66.docx Atitit enhance dev effect提升开发效率的十大原理与方法v2 u66.do
- 一个cp命令引发的mongodb大量慢查询
- v2021年烷基化工艺考试题及烷基化工艺考试试卷
- 计算机二级考试用的什么Word,计算机二级考试内容大纲_计算机二级office考什么...
- 微信扫码提示在浏览器中打开的遮罩代码
- IDEA更新至2020版后Version Control窗口的还原问题
- 单播、广播、多播(组播)的概念和区别
- 20181212股票早盘
- 最新版chrome浏览器安装Chrome插件时出现“CRX-HEADER-INVALID“解决方法
- 实验---采用SOM网络进行聚类
热门文章
- Centos7下python2.x 和python3.x共存
- Vue组件实现tips的总结
- HTML5数据推送SSE原理及应用开发
- jquery验证表单 提交表单
- CPU/ABI显示No system images installed for this target的解决方案
- Java中 ArrayList类常用方法和遍历
- centos 6.5 安装mysql 5.6.35–libc.so.6(GLIBC_2.14)(64bit),libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
- 福州大学软件1715|W班-助教卞倩虹个人简介
- php结合redis实现高并发下的抢购、秒杀功能
- SSL 1760——商店选址问题(最短路)