将参数传递给解析器以从API-角度

时间:2018-08-28 21:58:53

标签: angular asp.net-web-api angular-resolver

我想在一个组件中使用2个解析器。 第一个“结果”-从数据库中获取单个结果。工作正常,解析器从路由获取参数。 第二个'resultsByDate'-从数据库中获取所有其他结果,其中添加的日期等于第一个解析器中收到的结果(第一个针对特定用户,第二个-来自其他用户的一批结果)。

我试图弄清楚如何获得这些价值,但我的想法耗尽了。我不太好的解决方案如下所示:

time: string;
resolve(route: ActivatedRouteSnapshot): Observable<Result[]>{
    this.resultService.getResult(route.params['id']).subscribe((item:Result) => {
        this.time = item.dateAdded.toString().slice(0,10);
        console.log(this.time)
    });
    return this.resultService.getResultsBydate(this.time).pipe(
        catchError(error => {
            this.alertify.error('problem retrieving data');
            this.router.navigate(['/results']);
            return of(null);
        }),
    );
}

如您所见,我使用服务以####-##-##格式获取正确的日期时间,并将其传递给API(ASP.NET Core)。不幸的是,第二次加载组件时,一切运行正常-首先,我得到了 “ GET http://localhost:5000/api/results/range/undefined 500(内部服务器错误)”,我被(有意地)重定向到主页,但是,当我第二次访问该组件时,我得到了想要的东西。

我认为这与第一个解析器有一些共同点,看起来第一次我无法获得undefined的日期时间,因为两个解析器都在同一时间执行,有什么办法可以“延迟”第二个解析器解析器?也许还有其他聪明的想法可以实现我的目标?

0 个答案:

没有答案