У меня есть файл модуля маршрутизации routing.module.ts, в котором я хочу изменить путь redirectTo в зависимости от того, является ли пользователь администратором или нет.
Моя идея состоит в том, чтобы использовать службу для захвата и хранения значения, и это поможет сохранить, где оно должно go, но оно не меняется. Я перепробовал много методов, но не могу заставить его работать. Есть ли какие-нибудь идеи?
Мой текущий код есть на routing.module.ts
Любая помощь о том, как заставить это работать и объяснить процесс, будет принята
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { TabsPage } from './tabs.page';
import { DataService } from '../services/data.service'
const routes: Routes = [
{
path: '',
component: TabsPage,
children: [
{
path: '',
redirectTo: DataService.prototype.isAdmin() ? 'home' : 'dashboard',
pathMatch: 'full'
},
{
path: 'home',
children: [
{
path: '',
loadChildren: () =>
import('../home/home.module').then(m => m.HomePageModule)
}
]
},
{
path: 'dashboard',
children: [
{
path: '',
loadChildren: () =>
import('../dashboard/dashboard.module').then(m => m.DashboardPageModule)
}
]
},
{
path: 'profile',
children: [
{
path: '',
loadChildren: () =>
import('../profile/profile.module').then(m => m.ProfilePageModule)
}
]
},
{
path: 'menu',
children: [
{
path: '',
loadChildren: () =>
import('../menu/menu.module').then(m => m.MenuPageModule)
}
]
},
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class TabsPageRoutingModule {}
и файл data.service.ts
import { Injectable } from '@angular/core';
import { Storage } from '@ionic/storage';
@Injectable({
providedIn: 'root'
})
export class DataService {
User = {
isAdmin: false
}
constructor(
private storage: Storage,
) { }
setUser(isAdmin: boolean) {
this.User.isAdmin = isAdmin
}
isAdmin() {
return this.User.isAdmin
}
}