SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件

cxOutlet合集

SAP Spartacus自定义指令cxOutlet的工作原理


SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件


SAP Spartacus 重用组件cx-table的设计原理


SAP Spartacus cxOutlet里的templatesRefs的填充逻辑


SAP Spartacus cxOutlet里的元数据存储,outlet名称和待渲染Component的映射关系


如下图所示:


SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件


传入cxOutlet这个自定义指令的值是:table.orgUnit.data.name:


SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件


cxOutlet自定义Directive的ngOnChanges方法里,进行Component的渲染,通过方法this.render实现:



SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件


SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件


SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件



vcr: View Container Reference

this.vcr.createEmbeddedView


SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件


每个outlet都有before, replace和after三个position:


SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件


传入cxOutlet自定义指令的SimpleChanges结构的值:


SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件


在cxOutlet的实现文件outlet.service.ts里,有一个叫做templatesRefs的存储结构,after,before,replace都指向一个map,key为outlet名称,可以理解成ABAP系统里的BAdI definition name,而value,指向一个数组,元素类型为ComponentFactory$1, 其中componentType指向ToggleLinkCellComponent,而selector即ToggleLinkCellComponent对应的selector.


SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件


cx-org-toggle-link-cell:

SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件

上一篇:《Windows PowerShell实战指南(第2版)》——3.7 访问在线帮助


下一篇:分析midea0978的《一个C#算法分析求解》(三)(完)