问题标签 [angular-transfer-state]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
56 浏览

angular - Angular 通用重复请求失败

我正在使用 Angular Universal 和 Angular 10。我已经导入ServerTransferStateModule到我的AppServerModuleTransferHttpCacheModule我的AppModule.

一切正常,但如果初始请求失败并出现一些错误(404、500),它会在客户端第二次执行。这是预期的行为吗?

0 投票
1 回答
32 浏览

angular - TransferState 解析数据的某些部分不存在于客户端,尽管它存在于服务器上

app.routing.module:

GetVideosResolver:

}

console.log(this.route.shapshot.data.videos) 在我的 IDE 控制台中打印正确的解析数据,尽管在浏览器控制台中缺少一些关键对象。似乎角度对您一次可以解决多大的对象有某种限制。我该如何绕过它?

0 投票
1 回答
132 浏览

angular - Angular Universal - 如果 url 具有不安全字符,则传输状态为空 - 重复的 xhr 调用

0 投票
2 回答
70 浏览

angular - Angular Transferstate 预渲染了两次 - html 中的 2 个 app-state 脚本标签和 2x 由 Angular 注释预渲染

我正在使用预渲染运行 Angular Universal。预渲染时,我得到 2 个 Angular 预渲染脚本标签,但并非总是如此。在我的开发环境中,我预渲染了 10 条路由,并且 10 次中有 7 次有 2 个应用程序状态脚本标签。在生产环境中,它一直在发生,因此不会出现仅 1 个脚本标签。

和 2 倍的评论“由 Angular 预先呈现:

这是我来自 angular.json 的预渲染配置

我通过调用开始预渲染npx ng run app:prerender

这是我的服务中调用 TransferState 的代码:

在我的 appModule 中导入“BrowserTransferStateModule”,在我的 appServermodule 中导入“ServerTransferStateModule”作为未更改。

鉴于此,有关此预渲染如何发生两次的任何想法?我一直在寻找这个错误很长一段时间,但我无法弄清楚。

0 投票
1 回答
81 浏览

server-side-rendering - Spartacus 状态转移实现

我使用原理图命令将SSR安装到 Spartacus 应用程序,并以SSR模式运行应用程序。

在我的 Chrome 开发工具中,我可以看到我的主页内容是由SSR 服务器成功生成的。

但是,我可以在我的网络选项卡中看到,XHR 请求仍在发送,并且使用http 调用获取数据,而不是使用express获取的数据。

我尝试在我的app.module.ts提供程序中使用来自https://sap.github.io/spartacus-docs/ssr-transfer-state/#page-title的配置与提供配置(我也尝试使用 Config.Module。 app.module.ts 中的 withConfig 也可以导入)文件,但它不起作用,因为 CMS 和产品请求仍然是从客户端发送的。

在我呈现的 HTML 的末尾,我可以看到状态数据以键值格式链接到脚本标记:

我想知道是否可以在客户端使用来自 HTML 模板的数据并且不再通过 HTTP 调用获取它们(在Spartacus 应用程序中实现Angular Universal 传输状态

我将非常感谢有关 Spartacus 应用程序中状态转移实施的正确方法(覆盖适配器或解析器或任何其他解决方案)的任何建议。

谢谢你。

0 投票
1 回答
21 浏览

angular - 拦截器类型'Observable' 不可分配给类型 'Observable>'

我在处理缓存查询的响应时遇到问题。

为了提高我的应用程序的性能,我研究了使用 TransferStateInterceptor 是最好的解决方案。但不幸的是,我在返回缓存的响应时遇到了一点问题。

在我的研究中,这个答案似乎是解决方案 https://stackoverflow.com/a/53492870/8747207

我也想实现这个视频中的解决方案,但是在返回缓存的响应时我总是遇到同样的问题

问题似乎是返回响应的类型,但我还没有找到有关如何解决此问题的任何有用信息。

错误具体在这一行

错误信息是这样的:

在我尝试实施的两种解决方案中,就在我必须返回 HttpResponse 时它失败了。

这是我在拦截器中的代码示例。

这是我的 TransferStateService

如何在拦截器中解决此问题,以便获取存储的响应?