Angular 路由器嵌套解决

Angular Router nested Resolve(s)

我有一条路线:

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 returns 我想将 obj['price'] 传递给 mySecondResolver 的对象 obj 因为 mySecondResolver 取决于 price 属性 共 obj。如何将结果从 myFirstResolver 传递到 mySecondResolver

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