标签:Observable Spartacus CMS number SAP data PageContext select 函数
PageLayoutService 实现里有一个 cms 依赖:CmsService.
当前页面元数据信息,通过 cms.getCurrentPage 维护。
从 routingService 里拿到当前页面上下文,再从 central 的 ngRx store 里抽取实际数据:
routingService.getPageContext 的实现:从 store里读取。
关于 TypeScript 的箭头函数,下列两种写法都正确:
第一种:没有给该函数指定返回类型,TypeScript 编译器自动推导。
let fun5 = (data:number)=> data * data;
第二种:完整写法。第一个箭头后面的 number,表明返回类型为 number.
let fun5:(data:number) =>number = (data:number)=> data * data;
select 接受一个输入参数:RoutingSelector.getNextPageContext,该参数一看就是一个函数:输入类型为 any,输出类型为 PageContext:
getNextPageContext 的类型定义正好和 select 接口里规定的 mapFn 的类型定义完全一致:
(state: any) => PageContext
select<any, PageContext>(mapFn: (state: any) => PageContext): (source$: Observable
select 本身的类型定义:返回一个函数,该函数接收的输入参数是类型为 T 的 Observable,输出是类型为 K 的 Observable 对象。
先假设 routingState 已经拿到了,先把 mapper 函数写好。然后再回过头来,解决如何拿到 routingState,即 getRouterState 要解决的问题。
同理:
更多Jerry的原创文章,尽在:"汪子熙":
标签:Observable,Spartacus,CMS,number,SAP,data,PageContext,select,函数 来源: https://www.cnblogs.com/sap-jerry/p/14800937.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。