Angular 2 - добавить ключ к роутеру - PullRequest
0 голосов
/ 11 июня 2018

Интересно, есть ли способ добавить ключ в массив Routes, поэтому, когда мне нужно использовать маршрут, я могу использовать ключ вместо явного URL.

Моя проблема заключается в том, чтов процессе разработки мне нужно изменить какой-то URL, и на данный момент мне нужно искать и заменять во всем проекте , где у меня есть эти URL.

Используя ключи, я бы изменил URL только в файле модуля маршрутизации .

Чтобы прояснить вопрос, я хочу изменить этот код:

this.router.navigate(['user', userId, 'profile']);

Что-то вроде:

this.router.navigate('userProfileUrl', {id: userId});

И в моем определении маршрутизации есть что-то вроде:

{ userProfileUrl => 'user/:id/profile' }

Как и в других платформах.
Например:

Laravel :

Route::get('user/profile', 'UserController@showProfile')->name('profile');

Рубины на рельсах :

get '/patients/:id', to: 'patients#show', as: 'patient'

================ ОБНОВЛЕНИЕ ================

Я открыл запрос функции:
https://github.com/angular/angular/issues/24775

1 Ответ

0 голосов
/ 06 июля 2018

Да, вы можете
Первый в вашем роутере из 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 определено ЗДЕСЬ

Еще немного:
Если вы хотите предварительно извлечь данные до того, как компонент отрендерится, вы можете использовать UserDetailResolver выше, смотрите какагрегат Резолвер в угловом роутере

...