【发布时间】:2021-08-18 00:50:32
【问题描述】:
我正在尝试在从服务器加载数据后加载视频网址。我正在使用解析器,但它不起作用,因为视频是在数据之前加载的。我做错了什么?
component.ts
this.valuePairService.getName('myVideoUrl').then(
(responseUrl: any) => {
this.videoUrl =
responseUrl.value === undefined && this.hasVideo
? '//player.vimeo.com/video/09452678?dnt=1'
: responseUrl.value;
}
);
解析器
@Injectable({ providedIn: 'root' })
export class ValuePairServiceResolver implements Resolve<string> {
constructor(private nameValuePairService: valuePairService) { }
resolve(route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<any> | Promise<any> | any {
return this.valuePairService.getName('myVideoUrl');
}
}
路由模块
{
path: 'videos',
resolve: { ValuePairServiceResolver },
component: VideosComponent
},
【问题讨论】:
-
这不是你应该在组件中使用它的方式。查看文档:angular.io/api/router/Resolve
-
谢谢@MaciejKasprzak 我已经查看了 Angular 文档,但该示例不适用于我的情况。