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$负责加载。
调试结果:
- 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 数组属性和方法
- matplotlib基础绘图命令之plot
- Qt官方示例-样式表
- 入坑 LinkedList,i 了 i 了
- Elasticsearch 利用API进行搜索
- 通过 Serverless Regsitry 快速开发与部署一个 WordCount 实例
- 聊聊dubbo-go的gracefulShutdownFilter
- 强烈推荐:2020年15道优秀的TypeScript练习题 (上集)
- 聊聊dubbo-go的GenericFilter
- Salesforce LWC学习(十九) 针对 lightning-input-field的label值重写
- MySQL定时备份方案
- Nginx多方面调优策略
- 太厉害了!这应该是目前Redis可视化工具最全的横向评测
- pip install时timeout设置
- 聊聊dubbo-go的TpsLimitFilter
- 聊聊dubbo-go的TokenFilter