Маршрутизатор Typescript () - PullRequest
       10

Маршрутизатор Typescript ()

0 голосов
/ 14 сентября 2018

Я борюсь с этой ошибкой:

NavigationError (id: 2, URL: '/ что-то / create? User = 3 # new', ошибка: Ошибка: не удается сопоставить ни один маршрут. Сегмент URL: «что-то / создать»)

Я сделал это до сих пор:

some.component.ts

constructor( private router: Router ) {}

createNew() {
    const navigateToNewWithUser: NavigationExtras = {
        fragment: 'new',
        queryParams: {'user': this.user.id}
    };

    this.router.navigate(['/something/create'], navigateToNewWithUser);
}

some.component.html

<button class="btn add-button float-right jh-create-entity" (click)="createNew()">

some.route.ts

{
    path: 'something/create?user=:id#new',
    component: SomeComponent,
    resolve: {
        supervision: UserPageResolver
    },
    data: {
        authorities: ['ROLE_ADMIN'],
        pageTitle: 'home.create'
    },
    canActivate: [UserRouteAccessService]
}

Все остальные маршруты выполняются по тому же шаблону и отлично работают. Я не понимаю, так как /something/create?user=3#new соответствует тому, что я положил в route.ts

Я работаю с проектами Angular 6, созданными с помощью JHipster. Я пытался изменить URL, удалив #new, поставив ?user=:id в конце, и многое другое, но у меня все время возникала одна и та же ошибка.

Есть идеи? Я прочитал несколько вопросов о угловой маршрутизации, но пока не нашел ответа на мою проблему.

Если вам нужно больше кода, просто спросите.

Ответы [ 3 ]

0 голосов
/ 14 сентября 2018

Если вы хотите использовать хеш в своем маршруте, вы должны включить стратегию определения местоположения хеша RouterModule.forRoot(routes, {useHash: true})

И для параметров запроса измените путь к маршрутизатору, например

path: 'something/create/:id

0 голосов
/ 14 сентября 2018

Вы также можете попробовать что-то вроде этого,

 this.router.navigate(['/something/create'], { queryParams: { user: this.user.id } });

изменить маршрут на,

    { path: 'something/create',  component: SomeComponent }
0 голосов
/ 14 сентября 2018

Сообщите вашему маршруту, что он может получать параметры, просто ": id", а не "user =: id". оно автоматически преобразуется в "user = 2"

  {
    path: 'something/create/:id',
    component: SomethingComponent
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...