如何通过代码获得当前SAP Spartacus Component渲染所基于的slot名称
什么是PageSlotComponent
/*** The `PageSlotComponent` is used to render the CMS page slot and it's components.** The Page slot host element will be supplemented with css classes so that the layout* can be fully controlled by customers:* - The page slot _position_ is added as a css class by default.* - The `cx-pending` is added for as long as the slot hasn't start loading.* - The `page-fold` style class is added for the page slot which is configured as the page fold.*/解決方案
You can inject the ancestor PageSlotComponent in your custom component and get the slot name by accessing its public property position$: Observable.
export class CustomComponent {constructor(@Optional() protected pageSlotComponent: PageSlotComponent) {}/*...*/slot$ = this.pageSlotComponent.position$; }理論依據
In Angular you can inject the closest parent component of a given type, by passing it as a constructor dependency.
You might want to add @Optional() decorator if you plan to use your component outside the content slot (i.e. as a static component). It will help avoid crashing app in the runtime, but will just resolve PageSlotComponent instance safely to null.
看一個運行時的例子:
Angular里可以很容易的通過依賴注入,在一個Component的構造函數里,注入其祖先引用作為依賴。這樣,Component里就能訪問其祖先實例上的數據。
總結
以上是生活随笔為你收集整理的如何通过代码获得当前SAP Spartacus Component渲染所基于的slot名称的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米手机怎么一键换机 小米手机一键换机方
- 下一篇: 如何将SAP Spartacus的默认h