【问题标题】:Angular Router nested Resolve(s)Angular Router 嵌套 Resolve(s)
【发布时间】:2017-06-02 20:49:46
【问题描述】:

我有一条路线:

const routes: Routes = [
    {
        path: ':id',
        component: MoyComponent,
        resolve: {
            first: MyFirstResolver
            second: mySecondResolver(first)
        }
    }

我有一个解析器:

@Injectable()
export class MyFirstResolver implements Resolve<any> {
    constructor(private ms: MyService, private router: Router) {}
    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
        let id = route.params['id'];
        return this.ms.get(id).map(res => {
            if (res) {
                return res;
            } else {
                this.router.navigate(['/']);
                return null;
            }
        });
    }
}

MyFirstResolver 返回一个对象obj,我想将obj['price'] 传递给mySecondResolver,因为mySecondResolver 取决于priceprice 属性。如何将结果从myFirstResolver 传递到mySecondResolver

【问题讨论】:

  • 你有两个return statements
  • 我不明白@Aravind
  • 您可能需要将它们合并到它自己的解析器中。理论上,您可以简单地创建一个 ThirdResolver 类,导入前两个类,然后将它们链接在一起。
  • @wilsonhobbs,这听起来很有趣,如果您可以发表回复,我会将其标记为完成...

标签: angular angular-routing


【解决方案1】:

您可以将两个解析器合并为一个解析器并将它们链接起来:因此创建 ThirdResolver,然后导入其他两个解析器并将它们的 resolve 方法链接在一起。

【讨论】:

  • 你能提供一个简短的样本吗?我们如何将前两个解析器链接到第三个解析器?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多