angular - Angular 解析器得到一个 Observable
问题描述
我从事 Angular 10 项目。我用一个简单的方法从我的后端获取数据
return this.http
.get<{ returned: Animal[] }>('animals')
.pipe(map((res) => res.returned.map((value) => value)));
这是我的解析器调用并通过我的路由模块中的路由器发送
resolve: {
animals: AnimalResolver,
}
我得到解决数据this.route.snapshot.data.animals
我想要一个Obervable<Animal[]>
供使用的 AsyncPipe。解析器返回的类型是 anObservable<Animal[]>
但我得到一个错误无效的管道参数,要解决这个错误我需要做:
of(this.route.snapshot.data.animals);
为什么?
解决方案
在这种情况下,您需要使用this.route.data
可观察的位置route
是ActivatedRoute而ActivatedRouteSnapshot只是当前路由的“静态”数据,这里没有可观察的数据。
this.animals$ = this.route.data
.pipe(map(data => data.animals));
推荐阅读
- javascript - 如何在 Javascript 中播放音轨时取消来自麦克风的音频反馈?
- scheme - Scheme中“if”和“cond”的区别
- reactjs - 反应原生导航到特定帖子的 ID
- python - 确定 Numpy SVD 中奇异值 V 中的对应列
- ruby-on-rails - 故事中的 NoMethodError#show
- android - Android:使用 Firebase 实时数据库跨多个客户端同步 CountDownTimer
- case - modelsim 命令在 Verilog 测试平台中选择特定测试
- django - Django 中有没有办法测试在 request.META 或 request.COOKIES 中发送的 Cookie 是否为 httpOnly?
- python - 通过python将字典附加到EXCEL文件中
- javascript - 从随机文件夹中选择一个随机文件