angular - 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 异步调用的完整列表?
谢谢!
解决方案
推荐阅读
- python - 它不是在 python 字符串中
- gradle - IntelliJ IDE 2018.3 Ultimate + Gradle 5.2.1 AND compileOnly
- sinon - Sinon 创建存根实例 - 包括受保护的属性
- java - 使用数据库在excel中追加数据
- angular5 - 使用 post() 自动传递保存在 cookie 中的会话
- php - Htaccess 多域,但重定向一个域,除了特定路径
- c# - Xamrin.Android 蓝牙配对
- google-sheets - 从单列和填充列中查询值,均基于多个条件
- java - 来自数据库的未经授权的错误 oauth2 客户端
- .net - 在安装期间确定 .NET Core 版本(IzPack、BitRock、Install4J)