首页 > 解决方案 > Angular Universal App 从 *ngFor 中的 http 请求呈现不完整列表

问题描述

在这个使用 Angular Universal 主宰 SSR 的旅程中,每天我都会面临新的问题,这些问题一直阻止我的 SPA 被搜索引擎正确索引。

我正在使用 Angular 5.2.11 和同一版本中的所有依赖项。此外,我正在使用传输状态模块来防止浏览器应用程序中的额外 http 调用。

我注意到的问题是,当我执行检索结果数组的 http get/post 请求并将此数组分配给组件变量以使用 *ngFor 指令呈现为列表时,服务器会将此列表呈现为不完整. 每次重新加载页面时,呈现结果的数量是随机的,从几乎 3 到小于整个数组长度。

这太可怕了,因为 Google 不会知道我所有现有的 url,因为每次尝试都会看到一个不完整且随机数量的结果列表。

我在 ngOnInit 中发出此请求并从服务中调用它,在组件中订阅它并在收到成功响应时将响应分配给组件变量。

据我所知,Angular Universal 中的 *ngFor 应该等待所有异步调用完成。我没有使用带有 Observable 的异步管道,因为我需要在我的应用程序架构中手动触发此请求,但我已经测试过这种方法,它也不起作用。

有谁知道如何使通用服务器应用程序始终呈现来自 http 异步调用的完整列表?

谢谢!

标签: angularangular-universalserver-side-rendering

解决方案


推荐阅读