Маршрутизатор с угловой 7 - PullRequest
0 голосов
/ 30 октября 2019

У меня есть вопрос о навигации по angular где-то в моем коде. У меня есть

this.router.navigate([12345678 + '/data']);

в моем app-routing.module

    path: ':nossnbr/data',
    component: DataComponent,
  },

в моем компоненте DataComponent (в NgOnInit)

  ngOnInit() {
     this.routerSubscription = this.activatedRoute.params.subscribe(params => {
        // ....   do something
     });

  }

навигация (this.router.navigate ([12345678 + '/ data']);) не работает. Ничего не происходит, мы не проходим подписку

С другой стороны, если я набираю непосредственно URL (localhost: 4200/12345678 / data) в браузере, там он проходит в подписке

В чем разница между 2 вызовами? Почему не проходит подписка, когда я пользуюсь навигацией?

Ответы [ 2 ]

0 голосов
/ 30 октября 2019

Какой ваш URL-адрес в точке, когда вы уезжаете с маршрутизатором?

Если это не localhost: 4200 , то вам нужно отредактировать адрес-навигацию по адресу:

this.router.navigate([12345678, 'data'])
0 голосов
/ 30 октября 2019

Наилучшая практика

Необходимо также указать имя модуля вместе с маршрутом. Если маршрутизация применяется только в корневом модуле, тогда имя модуля не требуется в маршруте, но в другом маршруте модуляэто навигация путем определения имени модуля, где нам нужна маршрутизация, за которой следует маршрут.

Например: Есть 2 модуля: приложение и домашний модуль, мы определили один маршрут в домашнем модуле маршрутизации, т.е. /dashboard.

В модуле маршрутизации root / app определите маршрутизацию модуля следующим образом:

 path: 'home-module',
  loadChildren: () => import('./home/home.module').then(m => 
  m.HomeModule)
 },

В .ts компонента домашнего модуля мы определим маршрутизацию следующим образом:

this._router.navigate(['./home-module/dashboard/']);
...