Не удается найти ни одного маршрута Ошибка на Angular 6 - PullRequest
0 голосов
/ 22 сентября 2018

Я начал изучать, как создавать веб-приложения с Angular 6, и в данный момент я пытаюсь сделать что-то похожее на Discord, просто чтобы посмотреть, смогу ли я на самом деле сделать это.

В данный момент яесть эти маршруты:

const routes: Routes = [{
  path: '',
  component: MeComponent,
},{
  path: 'guild',
  component: MeComponent,
}, {
  path: 'guild/:guild_id',
  component: GuildComponent,
}, {
  path: 'guild/:guild_id/channel/:channel_id',
  component: ChannelComponent
}];

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

core.js:1673 ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'guild/5ba393943b445b2e942f31e4/channels/123'
Error: Cannot match any routes. URL Segment: 'guild/5ba393943b445b2e942f31e4/channels/123'
    at ApplyRedirects.push../node_modules/@angular/router/fesm5/router.js.ApplyRedirects.noMatchError (router.js:1382)
    at CatchSubscriber.selector (router.js:1363)
    at CatchSubscriber.push../node_modules/rxjs/_esm5/internal/operators/catchError.js.CatchSubscriber.error (catchError.js:33)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
    at TapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/tap.js.TapSubscriber._error (tap.js:61)
    at ApplyRedirects.push../node_modules/@angular/router/fesm5/router.js.ApplyRedirects.noMatchError (router.js:1382)
    at CatchSubscriber.selector (router.js:1363)
    at CatchSubscriber.push../node_modules/rxjs/_esm5/internal/operators/catchError.js.CatchSubscriber.error (catchError.js:33)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80)
    at MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60)
    at TapSubscriber.push../node_modules/rxjs/_esm5/internal/operators/tap.js.TapSubscriber._error (tap.js:61)
    at resolvePromise (zone.js:814)
    at resolvePromise (zone.js:771)
    at zone.js:873
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
    at Object.onInvokeTask (core.js:3811)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
    at drainMicroTaskQueue (zone.js:595)

Я не уверен, как решить эту проблему, и хотя я пытался использовать дочерний тег внутри каждого объекта, чтобы он был

'' -> Me
'guilds' -> Me (since no guild id was provided)
  - ':guild_id' -> GuildComp (shows the guild info)
        - 'channels' -> GuildComp (no channel id was provided)
        - 'channels/:channel_id' -> ChannelComp (shows the channel info)

Ноэто тоже не сработало.

Есть предложения?

Я все еще новичок в Angular и веб-разработке в целом, поэтому, пожалуйста, не ненавидите.

1 Ответ

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

Как я вижу из ошибки, вы вводите

guild / 5ba393943b445b2e942f31e4 / channel / 123 этот URL в вашем браузере

, но вы определили

guild /: guild_id/ channel /: channel_id в ваших маршрутах

, поэтому просто удалите 's' из канала в URL, тогда он будет работать

...