如何在 Spartacus 使用 UserAccountFacade 在语言设置更改后重新读取用户数据

简介: 如何在 Spartacus 使用 UserAccountFacade 在语言设置更改后重新读取用户数据

问题1:如何在 Spartacus 使用 UserAccountFacade 在语言设置更改后重新读取用户数据


ae90d78d208bc07754fa447499da52b7.png

4c3225f64a92cb7d338f00c361baaa2b.png

e0ea5ebb1861c1c4019c045d5b2e2d38.png

可以扩展上图这个 Observable.


然后使用 combineLatest 和其他的 Observable 进行组合。

a78c43715f647dd0f81136367b09c36c.png


问题2:使用 outlet 时遇到错误消息:Type before is not assignable to type OutletPosition


96a4b1cc630a495b91beb1aa5f3d0cb2.png

a0b58b86ffb34b8f87f4d3b50f702546.png

解决方案:


add outletPosition = OutletPosition; to the component,

HTML 里添加代码:


[cxOutletPos]="outletPosition.BEFORE"


还需要检查:


did you add the outlets to the app component html?


例如添加如下代码到 Component HTML:


<outlets></outlets>


问题3:HTTP 400 和 404


对于 product 明细页面来说,随便输入一个不存在的 url,返回值为 HTTP 400:


https://cloudapp.azure.com:9002/occ/v2/electronics-spa/cms/pages?pageType=CategoryPage&code=5781122&lang=en&curr=USD



错误消息:


{
   "errors" : [ {
      "message" : "The value provided is not allowed.",
      "reason" : "invalid",
      "subject" : "code",
      "subjectType" : "parameter",
      "type" : "ValidationError"
   } ]
}


如果是 content page 请求不存在:


https://cloudapp.azure.com:9002/occ/v2/electronics-spa/cms/pages?pageType=ContentPage&pageLabelOrId=%2Ftest&lang=en&curr=USD


返回错误消息:


 

"errors" : [ {
      "message" : "No content page found matching the provided label or id: /test",
      "type" : "CMSItemNotFoundError"
   } ]
}


客户可以使用自定义的 renderKeyResolver 来动态决定哪个页面应该使用哪种渲染策略,SSR 还是 CSR.


如果特定键缺少翻译,则生产模式下的店面会显示不间断的空格字符。 为了更容易捕捉丢失的键,在开发模式下,Spartacus 会显示翻译键,前面有块的名称和冒号(例如,[common:form.confirm])。


如果缺少翻译,为了提供更好的用户体验,开发人员可以指定备用语言。 设置 fallbackLang 选项可确保对于每个缺失的翻译,使用来自备用语言的等价物。


以下是使用英语作为备用语言的示例配置:


import { translations, translationChunksConfig } from '@spartacus/assets';
// ...
providers: [
  provideConfig({
    i18n: {
      resources: translations,
      chunks: translationChunksConfig,
      fallbackLang: 'en',
    },
  }),
];

翻译由语言和命名块构成,因此开发人员可以仅为当前语言和当前页面加载翻译资源。 以下是翻译资源的结构示例:


interface TranslationResources {
  [lang: string]: {
    [chunkName: string]: {
      [key: string]: any; // value or nested object with keys
    };
  };
}
目录
相关文章
|
7月前
|
存储 Java
JDK21更新内容:匿名模式和内容
JDK21更新内容:匿名模式和内容
|
8月前
uniapp 全局数据(globalData)的设置,获取,更改
uniapp 全局数据(globalData)的设置,获取,更改
758 0
|
7月前
|
存储
如何更改 Spartacus 默认的 token 存储方式
如何更改 Spartacus 默认的 token 存储方式
29 0
|
4月前
|
JSON 安全 数据安全/隐私保护
WebOffice 网页版在线 Office 的 Word 文档权限控制,限制编辑,只读、修订模式、禁止复制等
在一些在线 Office 文档中,有很多重要的文件需要保密控制,比如:报价单、客户资料等数据,只能给公司成员查看,但是不能编辑,并且不能拷贝,防止重要资料外泄。可以通过猿大师办公助手的在线 Office 的文档编辑权限来解决这些问题!
85 1
|
6月前
|
UED
如何在 Spartacus 使用 UserAccountFacade 在语言设置更改后重新读取用户数据
如何在 Spartacus 使用 UserAccountFacade 在语言设置更改后重新读取用户数据
45 1
|
文件存储
Yii2.0框架提供了内置的文件访问组件,可以通过配置只允许访问指定的目录,防止非法文件的包含。这个如何使用?
Yii2.0框架提供了内置的文件访问组件,可以通过配置只允许访问指定的目录,防止非法文件的包含。这个如何使用?
114 0
【Excel自动化办公Part3】:工作表的创建、删除、复制和修改名称,冻结窗格,添加筛选
【Excel自动化办公Part3】:工作表的创建、删除、复制和修改名称,冻结窗格,添加筛选
124 0
【Excel自动化办公Part3】:工作表的创建、删除、复制和修改名称,冻结窗格,添加筛选
SAP Spartacus默认的baseSite是从源代码什么地方读取的
SAP Spartacus默认的baseSite是从源代码什么地方读取的
SAP Spartacus默认的baseSite是从源代码什么地方读取的
SAP Spartacus默认的货币列表currency是从源代码什么地方读取的
SAP Spartacus默认的货币列表currency是从源代码什么地方读取的
108 0
SAP Spartacus默认的货币列表currency是从源代码什么地方读取的
|
XML Android开发 数据格式
【PageLayout】非常简单的一键切换加载-空数据-错误页,支持自定义
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/82594706 项目中我们经常会用到的加载数据,加载完数据后显示内容,如果没有数据显示一个空白页,这是如果网络错误了显示一个网络错误页,自定义一个PageLayout。
1128 0