spartacus-storefront - 接收页面模板的延迟加载模块
问题描述
与@spartacus-storefront 相关
如何根据我在GET '/pages'
请求中收到的“模板”来延迟加载模块?
示例:主页
GET (anonymous user) '/pages' -> {... template: LandingPage1Template } ->
我想用我的自定义组件覆盖加载 LandingPage1.moduleGET (connected user) '/pages' -> {... template: LandingPage2Template } ->
我想用另一个自定义布局/插槽/组件加载另一个模块
我想有一种方法在模板和我必须加载的模块之间进行映射。
解决方案
我不确定我们是否可以毫无痛苦地使用 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 样式、插槽和组件,换句话说,您可以根据用户的状态为 Home Page 实现单独的 UI 和逻辑,而无需操作前端应用程序端的模块。
同样的方法也适用于其他网站页面。
推荐阅读
- loops - 通过 ec2_instance_facts 结果的 Ansible 循环 - 差异输出调试与 set_fact
- regression - 如何获得 Math.NET 多元回归中每个系数的 t 统计量
- ios - Swift - 无法将值成功传递给接下来呈现的 ViewController
- angular - minLength 和 maxLength 验证器在 Angular7 反应形式中不起作用
- python - 尝试使用 ExchangeLib 在过去 24 小时内返回电子邮件
- python - 从比较关系中,从文件中选择特定数据并将其写入列表
- c# - 动态检索存储过程的结果
- python - Python 和 Selenium - 使用 XPath text() 而不是 myElement.text?
- c# - VSTO 加载项:清单中的引用与下载的程序集的标识不匹配
- r - 按组用平均值估算缺失数据