Angular 2 Путь к конфигурации маршрутов маршрутизатора Соответствие не работает на канале, если уже существуют более определенные c маршруты - PullRequest
0 голосов
/ 08 мая 2020

Я пытаюсь изучить angular 2 полное руководство

Затем в руководстве по перенаправлению маршрутизатора в модуль у меня проблема с этим:

const APP_ROUTES: Routes = [
  { path: 'user/:id', component: UserComponent },
  { path: 'user/:id', component: UserComponent, children: USER_ROUTES },
  { path: 'user', redirectTo: '/user/1', pathMatch: 'full' },
  { path: '', component: HomeComponent }
];

Это app.component. html template

<div class="container">
  <div class="row">
    <div class="col-xs-10">
      <h1>Hello World!</h1>
      <hr>
      <a [routerLink]="['']" [queryParams]="{analytics: 200}">Home</a> |
      <input type="text" #id (input)="0">
      <a [routerLink]="['/user', id.value]">User/{{id.value}}</a>
      <hr>
      <router-outlet></router-outlet>
    </div>
  </div>
</div>

конфигурация, которая уже содержит больше спецификаций c paths не go на пути маршрутизатора redirectTo с pathMatch: full, если я помещаю маршрут перенаправления без pathMatch поверх указанного c маршруты с тем же начальным сегментом, он использует только redirectTo и не выполняет другие маршруты.

Что здесь не так?

Мое намерение загрузить маршрут с помощью пути перенаправления и изменить URL-адрес, а также передать параметры в компонент и используйте его, как здесь:

/// user.component.ts

import { Component, OnDestroy } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { Subscription } from 'rxjs/Rx';

@Component({
  selector: 'app-user',
  template: `
    <h1>User Component</h1>
    <button (click)="onNavigate()">Go Home</button>
    {{id}}
    <hr>
    <router-outlet></router-outlet>
  `,
  styles: []
})
export class UserComponent implements OnDestroy {
  private subscription: Subscription;

  id: string;

  constructor(private router: Router, private activatedRoute: ActivatedRoute) {
    this.subscription = activatedRoute.params.subscribe(
      (param: any) => this.id = param['id']
    );
  }
  ngOnDestroy(): void {
    this.subscription.unsubscribe();
  }

  onNavigate() {
    this.router.navigate(['/'], {queryParams: {'analytics': 100}});
  }

}

Теперь он показывает параметр из пути redirectTo только при загрузке первой страницы с URL-адресом, как в не по ссылке щелкнув,

Мое намерение работать с идентификатором и без него, как указано в коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...