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
方法链接在一起。
我有一条路线:
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
方法链接在一起。