在SAPSpartacusPageLayout组件的实现中,每个layoutName对应一个cxOutlet进行扩展:第13行的ngFor指令扩展了实现类的slots$,放置每个插槽对应的CMS组件。slots$是一个数组,通过pageLayoutService.getSlots方法获取。本文描述了getSlots方法的执行细节。rxjsoperatorswitchMap暗示传入的箭头函数是一个可取消的耗时操作。在这个闭包中执行:combineLatest:只要订阅了this.page$和this.breakpointService.breakpoint$其中之一,就会触发map操作:所有支持的slot和slot中允许的组件列表:breakpoint:xlreadsslot配置:所有模板配置都在tis.config.layoutSlots:得到header配置:最终结果:Jerry更多原创文章在这里:《汪子熙》:
