SAP Spartacus CmsService的CmsActions.LoadCmsComponent
时间:2022-07-28
本文章向大家介绍SAP Spartacus CmsService的CmsActions.LoadCmsComponent,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在这个class的下列方法里加上console.log:
const loading$ = combineLatest([
this.routingService.getNextPageContext(),
this.store.pipe(
select(CmsSelectors.componentsLoaderStateSelectorFactory(uid, context))
),
]).pipe(
observeOn(queueScheduler),
tap(([nextContext, loadingState]) => {
const attemptedLoad =
loadingState.loading || loadingState.success || loadingState.error;
// if the requested context is the same as the one that's currently being navigated to
// (as it might already been triggered and might be available shortly from page data)
// TODO(issue:3649), TODO(issue:3668) - this optimization could be removed
const couldBeLoadedWithPageData = nextContext
? serializePageContext(nextContext, true) === context
: false;
if (!attemptedLoad && !couldBeLoadedWithPageData) {
console.log('baal try to load cp with uid: ' + uid
+ 'context: ' + JSON.stringify(pageContext));
this.store.dispatch(
new CmsActions.LoadCmsComponent({ uid, pageContext })
);
}
})
);
测试发现,在加载Spartacus首屏时,该方法(根据单个Component uid读取数据)不会被调用:
但是选中某个具体的产品进入明细页面后:
这个cmsActions来自: import { CmsActions } from ‘…/store/actions/index’;
到cms-group.actions里具体查看action实现:
由三个action文件组成。
根据关键字 LoadCmsComponent和LOAD_CMS_COMPONENT搜索:
上图loadComponent$负责加载。
调试结果:
- S-shortcodes:WordPress短代码形式美化框插件下载
- 服务器同时存在1.1和2.0程序注意事项
- Flash/Flex学习笔记(44):万有引力与粒子系统
- 代码重写WordPress网页标题为“原网页标题|网站名”的形式
- 未来10年21个核心工作岗位
- Asp.net 2.0 WebPart使用经验点滴
- 使用LinqToExcel读取Excel
- 时代的需要:越来越多的Java工程师开始转向hadoop?
- 如何结合IbatisNet的LIST遍历实现模糊查询
- Flash/Flex学习笔记(41):碰撞检测
- [.NET网格计算框架] Alchemi
- 修改WordPress登陆文件名wp-login.php,防密码被暴力破解
- NDoc - .NET 代码文档生成器
- Mono P/Invoke :DLLImport
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux之DNS(详解)
- SSH端口转发
- 文本处理三剑客之—awk
- Python办公自动化|批量提取Excel数据
- 3分钟短文 | 有挑战!PHP用1个函数实现post请求,你用哪个?
- linux 磁盘管理
- linux 安装各个版本nodejs
- python3 使用cookie模拟post实现修改活码内容
- VIM 创建程序文件自动添加头部注释
- 【简记】Linux 计划任务 Crontab
- VS Code 免密登录Linux服务器
- Linux部署私钥实现免密登录
- 搭建Jenkins+tomcat+maven+Gitlab持续部署/回滚系统
- Java--注解
- 如何在 Ubuntu 20.04 上安装 Jenkins