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,其中 route
是 ActivatedRoute while ActivatedRouteSnapshot 只是当前路线的“静态”数据,这里没有 observable。
this.animals$ = this.route.data
.pipe(map(data => data.animals));
我从事 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,其中 route
是 ActivatedRoute while ActivatedRouteSnapshot 只是当前路线的“静态”数据,这里没有 observable。
this.animals$ = this.route.data
.pipe(map(data => data.animals));