我想知道是否有办法向Routes
数组添加密钥,所以当我需要使用路由时,我可以使用密钥而不是显式网址。
我的问题是,在开发过程中我需要更改一些网址,目前我需要在整个项目中搜索和替换,我有这些网址。
使用密钥我会仅在路由模块文件中更改网址。
为了澄清我的问题,我想更改此代码:
this.router.navigate(['user', userId, 'profile']);
类似于:
this.router.navigate('userProfileUrl', {id: userId});
在我的路由定义中有类似的内容:
{ userProfileUrl => 'user/:id/profile' }
正如在其他框架中所做的那样 例如:
Route::get('user/profile', 'UserController@showProfile')->name('profile');
get '/patients/:id', to: 'patients#show', as: 'patient'
================更新================
我打开了一个功能请求:
https://github.com/angular/angular/issues/24775
答案 0 :(得分:0)
是的,你可以
首先从app.module.ts
@NgModule({
imports: [
...,
RouterModule.forRoot([
path: 'app',
component: AppComponent,
children: [
{
path: 'user/:id',
resolve: {
data: UserDetailResolver,
},
component: UserDetailComponent,
},
]
]),
],
bootstrap: [AppComponent]
})
您的路由器导航可能是:
this.router.navigate(['app', 'user'], { queryParams: {id: 10} });
router.navigate的第二个参数定义为HERE
更多:
如果您想在组件渲染之前就预取数据,
您可以使用上面的UserDetailResolver,了解如何实现Resolver in angular router