Я бы хотел, чтобы навигация в виде вкладок осуществлялась в приложении NS + Angular 7.
Вот мои текущие настройки:
приложение-routing.module.ts:
...
const routes: Routes = [
{ path: '', redirectTo: '/login', pathMatch: 'full' },
{ path: 'login', component: LoginComponent },
{ path: 'tabs', loadChildren: '~/app/tabs/tabs.module#TabsModule'; }
];
...
tabs.module.ts:
...
NativeScriptRouterModule.forChild([
{ path: 'def',
component: TabsComponent,
children: [
{
path: 'market',
outlet: 'market',
component: NSEmptyOutletComponent,
loadChildren: '~/app/market/market.module#MarketModule'
},
{
path: 'list',
outlet: 'list',
component: NSEmptyOutletComponent,
loadChildren: '~/app/list/list.module#ListModule'
},
{
path: 'search',
outlet: 'search',
component: NSEmptyOutletComponent,
loadChildren: '~/app/search/search.module#SearchModule'
},
{
path: 'insight',
outlet: 'insight',
component: NSEmptyOutletComponent,
loadChildren: '~/app/insights/insights.module#InsightsModule'
},
{
path: 'explore',
outlet: 'explore',
component: NSEmptyOutletComponent,
loadChildren: '~/app/explore/explore.module#ExploreModule'
}
]}
])
...
и, наконец, один из 5 модулей маршрутизации, давайте перейдем к list-routing.module.ts:
...
const routes: Routes = [
{ path: '', redirectTo: 'list' },
{ path: 'list', component: ListComponent },
{ path: 'all', component: ListListComponent }
]
...
Я думаю, что я запутался из-за вкладок, появляющихся только после того, как вы пройдете экран входа в систему. После успешного входа я делаю:
this.router.navigate(['tabs/def'], {
transition: {
name: 'fade',
duration: 100,
curve: 'linear'
},
clearHistory: true
}
это выводит меня на рынок, показывая мой «домашний» экран. И затем, если я нажму на одну из вкладок, используя:
tabs.component.html:
<TabView class="fal" style="font-size: 20; padding: 3;" >
<page-router-outlet *tabItem="{title: 'home'}" name="market"></page-router-outlet>
<page-router-outlet *tabItem="{title: 'clipboard-list'}" name="list"></page-router-outlet>
<page-router-outlet *tabItem="{title: 'search'}" name="search"></page-router-outlet>
<page-router-outlet *tabItem="{title: 'lightbulb'}" name="explore"></page-router-outlet>
<page-router-outlet *tabItem="{title: 'newspaper'}" name="insight"></page-router-outlet>
</TabView>
Затем меня ведут в правильную розетку. Вот в чем проблема: Компонент списка будет загружаться нормально, но как только я нажимаю на один из моих списков, чтобы попасть в ListListComponent, он говорит мне:
Error: Cannot match any routes. URL Segment: 'tabs/def'
Я настраиваю эту последнюю навигацию так:
this.router.navigate( [ { outlets: { list: [ '/all' ] } }], { relativeTo: this.route })
Я пробовал несколько комбинаций передачи URL «tabs / def / all» или «tabs / def», но безуспешно. Насколько я понимаю, я передаю URL в начале, но теперь, когда я вложен, мне нужно просто перейти к розетке. Так что мой последний синтаксис на этом последнем router.navigate?
Большое вам спасибо за помощь !!