与@ spartacus-storefront相关
如何根据GET '/pages'
请求中收到的“模板”来延迟加载模块?
示例:首页
GET (anonymous user) '/pages' -> {... template: LandingPage1Template } ->
我想用我的自定义组件替换加载LandingPage1.module GET (connected user) '/pages' -> {... template: LandingPage2Template } ->
我想用另一个自定义布局/插槽/组件加载另一个模块我希望有一种方法可以在模板和必须加载的模块之间建立映射。
答案 0 :(得分:0)
我真的不确定我们是否可以轻松地使用Spartacus核心机制来实现这种逻辑,但是我认为,在SAP Commerce Cloud方面进行处理将是最好的方法。
例如,您可以为主页保留两个单独的模板LandingPage1Template
和LandingPage2Template
,您的SAP Commerce Cloud系统可以验证用户的状态,并向Spartacus应用程序发送不同的页面结构,其中包含要显示的插槽和组件
在Spartacus Angular应用程序一侧,您应该添加单独模板的配置,例如:
export const layoutSlotsConfig: LayoutConfig = {
layoutSlots: {
header: {
xs: {
slots: ['Header']
},
sm: {
slots: ['Header']
},
md: {
slots: ['Header']
},
lg: {
slots: ['Header']
}
},
LandingPage1Template: {
slots: [
'Section1C',
'Section1A'
]
},
LandingPage2Template: {
slots: [
'Section2C',
'Section2A'
]
},
footer: {
slots: ['Footer']
}
}
};
然后,您可以通过Spartacus核心机制为上述模板简单地实现单独的UI样式,插槽和组件,换句话说,您可以根据用户的状态为主页实现单独的UI和逻辑,而您不需要在前端应用程序端使用模块进行操作。
同样的方法也可以完美地用于其他网站页面。