对于同一组件,我有 2 个不同的路径,它们使用解析数据:
//app.routing:
const APP_ROUTES: Routes = [
{
path: '',
canActivate: [LoggedInGuard],
children: [
{path: '', redirectTo: '/path1', pathMatch: 'full'},
{path: 'path1', loadChildren: 'app/myModule.module#MyModuleModule'},
{path: 'path2', loadChildren: 'app/myModule.module#MyModuleModule'}
]
},
{path: '**', redirectTo: ''}
];
export const routing = RouterModule.forRoot(APP_ROUTES);
在 myModule.routing 中:
const MY_MODULE_ROUTES: Routes = [
{path: '', component: MyModule2Component, resolve: {data: MyModule2Resolver}}
];
export const myModuleRouting = RouterModule.forChild(MY_MODULE_ROUTES);
这一切都运行良好。
现在我想从 MyModule2Resolver 控制路由:
@Injectable()
export class MyModule2Resolver implements Resolve<any[]> {
constructor(private activatedRoute: ActivatedRoute, private router: Router) {}
resolve(): Promise<any> {
//Different action depending on path1 or path2 but
// I have not this info in activatedRoute or router
}
}
可能吗?
最佳答案
您的activatedRoute
包含一个属性url
,其中包含有关url
的信息。使用它并编写你的逻辑
关于angular - 将解析器与路由器一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48320446/