SAP Spartacus PageLayoutService.ts 里的 templateName$ get 操作:返回一个 Observable 对象,包裹的类型为 string.
pipe 的第一个操作 filter,目标是确保 page 对象的 template 属性肯定存在,防止接下来第二个 map 操作呈现返回被 Observable 包裹的 undefined 值的状况。
而在 PageLayoutComponent 实现里,有一个同名属性。
从 layoutName$ 返回的逻辑看,优先从 section$ 里取数。如果 section$ 里有值,返回 section 的值,否则间接返回 PageLayoutService 的 templateName$.
能够查看到这个 project 的具体实现地位:
从 page 构造里拿到 template 属性:值为 ProductDetailsPageTemplate
具体原理,是从 ngrx central store 里,拿到 product 明细页面相干数据:
拿到 result 后,调用 next,告诉对应的 subscriber:
更多 Jerry 的原创文章,尽在:” 汪子熙 ”: