Angular 解析器得到一个 Observable

Angular resolver get an 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。解析器的类型 return 是一个 Observable<Animal[]> 但我得到一个错误无效的管道参数,为了解决这个错误我需要做:

of(this.route.snapshot.data.animals);

为什么?

在这种情况下,您需要使用 this.route.data observable,其中 routeActivatedRoute while ActivatedRouteSnapshot 只是当前路线的“静态”数据,这里没有 observable。

this.animals$ = this.route.data
  .pipe(map(data => data.animals));