Я использую ионные вкладки для моего внешнего углового ионного приложения. Я использую вложенные вкладки, поэтому на 1-й вкладке есть 3 вкладки, вкладка 1, вкладка 2, вкладки функций и вкладки функций имеют 3 вкладки, вкладка 4, вкладка 5, вкладка 6. Я использовал угловую маршрутизацию.
Итак, маршруты выглядят следующим образом:
- tabs / tab1,
- tabs / tab2,
- tabs / feature-tabs / tab4,
- tabs / feature-tabs / tab5,
- Вкладки / функция-закладки / tab6
Проблема при выборе закладок объектов. По умолчанию активным является маршрут 4, но свойство 'tab' в кнопке ion-tab, если оно остается аналогичным пути (то есть tab = "tab4") в маршрутизации по умолчанию, как рекомендуется Tab 4 работает, но выбор / нажатие на вкладках выдает ошибку «Не удается сопоставить ни один маршрут». Сегмент URL: «tabs / tab1». Это означает, что свойство tab для кнопки-вкладки ion относится к родительским вкладкам. Когда я меняю свойство tab на кнопке ion-tab на «feature-tabs / tab4» (не рекомендуется), все работает, но свойство CSS --color-selected для кнопки ion-tab не работает , Но у меня вопрос, почему свойство вкладки ссылается на вкладки патента и как я могу вернуться к дочерним вкладкам функций?
Я уже устал менять свойство CSS, но оно просто не работает,
ion-tab-button{
--color-selected: #a0a;
}
Это мой маршрут для вкладок,
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { TabsPage } from './tabs.page';
const routes: Routes = [
{
path: '',
component: TabsPage,
children: [
{
path: 'tab2',
loadChildren: './../tab2/tab2.module#Tab2PageModule'
},
{
path: 'tab1',
children: [
{
path: '',
loadChildren: '../tab1/tab1.module#Tab1PageModule'
}
]
}
]
},
{
path: 'feature-tabs',
loadChildren: '../feature-tabs/feature-tabs.module#FeatureTabsPageModule'
},
{
path: '',
redirectTo: './tabs/tab1',
pathMatch: 'full'
}
]
},
{
path: '',
redirectTo: '/tabs/tab1',
pathMatch: 'full'
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class TabsRoutingModule { }
Это вкладки html,
<ion-content>
<ion-tabs>
<ion-tab-bar slot="bottom">
<ion-tab-button tab="tab1">
<ion-label>Tab1</ion-label>
<ion-icon name="pricetags"></ion-icon>
</ion-tab-button>
<ion-tab-button tab="tab2">
<ion-label>Tab2</ion-label>
<ion-icon name="podium"></ion-icon>
</ion-tab-button>
<ion-tab-button tab="feature-tabs">
<ion-label>Feature tabs</ion-label>
<ion-icon name="cash"></ion-icon>
</ion-tab-button>
</ion-tab-bar>
</ion-tabs>
</ion-content>
это мои особенности-вкладки маршрутов:
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { FeatureTabsPage } from './feature-tabs.page';
const routes: Routes = [
{
path: '',
component: FeatureTabsPage,
children: [
{
path: 'tab4',
children: [
{
path: '',
loadChildren: './../tab4/tab4.module#Tab4PageModule'
}
]
},
{
path: 'tab5',
children: [
{
path: '',
loadChildren: './../tab5/tab5.module#Tab5PageModule'
}
]
},
{
path: 'tab6',
children: [
{
path: '',
loadChildren: './../tab6/tab6.module#Tab6PageModule'
}
]
},
{
path: '',
redirectTo: '/tabs/feature-tabs/tab4',
pathMatch: 'full'
}
]
},
{
path: '',
redirectTo: '/tabs/feature-tabs/tab4',
pathMatch: 'full'
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class FeatureTabsRoutingModule {}
это HTML-код для вкладок функций:
<ion-content>
<ion-tabs>
<ion-tab-bar slot="top">
<ion-tab-button tab="tab4">
<ion-icon name="calendar"></ion-icon>
<ion-label>tab4</ion-label>
</ion-tab-button>
<ion-tab-button tab="tab5">
<ion-icon name="contacts"></ion-icon>
<ion-label>tab5</ion-label>
</ion-tab-button>
<ion-tab-button tab="tab6">
<ion-icon name="information-circle"></ion-icon>
<ion-label>tab6</ion-label>
</ion-tab-button>
</ion-tab-bar>
</ion-tabs>
</ion-content>