Angular 如何从resolve函数返回两个不同的Observable并将其订阅到组件中
我试图从route.ts中的on resolve函数返回两个不同类型的可观测值,并希望在Component.ts中订阅该可观测值,但其显示未定义的响应。 我也试过这个链接 路线1.tsAngular 如何从resolve函数返回两个不同的Observable并将其订阅到组件中,angular,angular7,Angular,Angular7,我试图从route.ts中的on resolve函数返回两个不同类型的可观测值,并希望在Component.ts中订阅该可观测值,但其显示未定义的响应。 我也试过这个链接 路线1.ts @Injectable({ providedIn: 'root' }) export class View360Resolve implements Resolve<any> { constructor(private service: View360Service) { } re
@Injectable({ providedIn: 'root' })
export class View360Resolve implements Resolve<any> {
constructor(private service: View360Service) { }
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
const id = route.params['id'] ? route.params['id'] : null;
if (id) {
var view360: View360;
var view360_2: View360_2;
var respp = this.service.findView360_2(1).pipe(
filter((response: HttpResponse<View360_2>) => response.ok),
map((View360_2: HttpResponse<View360_2>) => View360_2.body)
);
var resp = this.service.find(id).pipe(
filter((response: HttpResponse<View360>) => response.ok),
map((view360: HttpResponse<View360>) => view360.body)
);
return forkJoin([
respp,
resp]);
}
return forkJoin([
of(new View360_2()),
of(new View360())]);
}
}
this.view360_2和this.view360两个对象都显示未定义的数据。请帮助解决此问题,谢谢。在您的解析器中:
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
return forkJoin(respp, resp);
}
我在使用MatTabGroup+Angular animations进行的测试的基础上创建了一个工作示例:添加代码示例,否则没有人会准备从头开始工作。最简单的方法是,你可以使用
Observable
,它可以用于所有类型。你可以返回一个Observable数组。这会有帮助吗?@jithil我错误地提交了不完整的问题,现在我已经完成了。@jpavel你能参考我现在编辑的上面的代码吗。
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
return forkJoin(respp, resp);
}
this.activatedRoute.data.subscribe((data) => {
console.log(data);
});