NativeScript Angular - Невозможно перемещаться между одноуровневыми представлениями, расположенными в разных выходных страницах-маршрутизаторах - PullRequest
0 голосов
/ 28 января 2019

У меня есть этот TabView компонент:

<TabView androidTabsPosition="bottom">
  <page-router-outlet *tabItem="{title: 'Item 1'}" name="map"></page-router-outlet>
  <page-router-outlet *tabItem="{title: 'Item 2'}" name="subscribe"></page-router-outlet>
</TabView>

Конфигурация маршрутизатора:

  {
    path: '',
    redirectTo: '/(map:map//subscribe:subscribe)',
    pathMatch: 'full'
  },
  {
    path: 'map',
    loadChildren: '~/app/routes/+map/map.module#MapModule',
    outlet: 'map'
  },
  {
    path: 'subscribe',
    loadChildren: '~/app/routes/+subscribe/subscribe.module#SubscribeModule',
    outlet: 'subscribe'
  }

В функциональном модуле SubscribeModule У меня есть функция, которая должна перейти к map route:

// The NativeScript router service
constructor(private router: RouterExtensions) {}

navigate(args) {

  const item = this.items[args.index];

  this.router.navigate(['map'], {
    transition: {
      name: 'slideLeft',
      duration: 300
   }
  });
}

Но все, что я продолжаю получать, это Error: Cannot match any routes. URL Segment: 'map'.

Я также попробовал следующее:

  • Переход к названной точке сthis.router.navigate([{outlets: {map: 'map'}}]
  • Навигация с помощью this.router.navigate(['../', 'map'])
  • Навигация с использованием navigateByUrl

Но все они дают одинаковый результат.

Что можетЯ делаю не так?

1 Ответ

0 голосов
/ 28 января 2019

Пожалуйста, попробуйте ниже

this.router.navigate (["/ map"], {transition: {name: 'slideLeft', duration: 300}});

попробуйте добавитьprivate activeRoute: ActivatedRoute в компоненте

this.router.navigate ([{outlets: {search: ["map"]}}], {lativeTo: this.activeRoute});

...