如何在angular中分别添加用户和管理员导航

如何在angular中分别添加用户和管理员导航,angular,navigation,Angular,Navigation,我想在angular项目中分离管理员和用户导航,就像电子商务网站一样。但子路由不适用于仪表板或用户。当我点击仪表板内的报告路由时,会给出它的错误。 这是我的代码 应用程序/应用程序路由.module.ts import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { DashboardComponent } from './admin/dashb

我想在angular项目中分离管理员和用户导航,就像电子商务网站一样。但子路由不适用于仪表板或用户。当我点击仪表板内的报告路由时,会给出它的错误。 这是我的代码

应用程序/应用程序路由.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { DashboardComponent } from './admin/dashboard.component';
import { HomeComponent } from './components/home/home.component';


const routes: Routes = [
  {path: '', component: HomeComponent},
  {path: 'dashboard', component: DashboardComponent}
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { AdminRoutingModule } from './admin-routing.module';
import { OrderComponent } from './components/order/order.component';
import { ProductComponent } from './components/product/product.component';
import { CustomerComponent } from './components/customer/customer.component';
import { ReportComponent } from './components/report/report.component';


@NgModule({
  declarations: [OrderComponent, ProductComponent, CustomerComponent, ReportComponent],
  imports: [
    CommonModule,
    AdminRoutingModule
  ]
})
export class AdminModule { }
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ReportComponent } from './components/report/report.component';


const routes: Routes = [
  {path: 'reports', component: ReportComponent}
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class AdminRoutingModule { }
app/app.component.html

<router-outlet></router-outlet>
<h1>Dashboard</h1>
<li class="nav-item">
    <a class="nav-link" [routerLink]="['/reports']" routerLinkActive="router-link-active" >
      <span data-feather="bar-chart-2"></span>
      Reports
    </a>
  </li>
<router-outlet></router-outlet>
<p>report works!</p>
管理/管理路由.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { DashboardComponent } from './admin/dashboard.component';
import { HomeComponent } from './components/home/home.component';


const routes: Routes = [
  {path: '', component: HomeComponent},
  {path: 'dashboard', component: DashboardComponent}
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

import { AdminRoutingModule } from './admin-routing.module';
import { OrderComponent } from './components/order/order.component';
import { ProductComponent } from './components/product/product.component';
import { CustomerComponent } from './components/customer/customer.component';
import { ReportComponent } from './components/report/report.component';


@NgModule({
  declarations: [OrderComponent, ProductComponent, CustomerComponent, ReportComponent],
  imports: [
    CommonModule,
    AdminRoutingModule
  ]
})
export class AdminModule { }
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ReportComponent } from './components/report/report.component';


const routes: Routes = [
  {path: 'reports', component: ReportComponent}
];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})
export class AdminRoutingModule { }
管理/dashboard.components.html

<router-outlet></router-outlet>
<h1>Dashboard</h1>
<li class="nav-item">
    <a class="nav-link" [routerLink]="['/reports']" routerLinkActive="router-link-active" >
      <span data-feather="bar-chart-2"></span>
      Reports
    </a>
  </li>
<router-outlet></router-outlet>
<p>report works!</p>
仪表板
  • 报告
  • Admin/components/report/report.components.html

    <router-outlet></router-outlet>
    
    <h1>Dashboard</h1>
    <li class="nav-item">
        <a class="nav-link" [routerLink]="['/reports']" routerLinkActive="router-link-active" >
          <span data-feather="bar-chart-2"></span>
          Reports
        </a>
      </li>
    <router-outlet></router-outlet>
    
    <p>report works!</p>
    
    报告有效

    但当我尝试访问此路径时,它会出错

    错误:未捕获(承诺中):错误:无法匹配任何路由。URL段:“报告”


    我认为如果在AppRoutingModule中使用routes的children属性会更清楚,如下所示:

    我使用了布局组件,但您可以使用您的模块

    我是为我的一个项目而实施的。你可以看看


    我想要单独的管理面板和单独的用户配置文件,其中的导航是像一个电子商务网站一样的家庭导航相同,所以在角度它是可能的还是不可能的?我很困惑。我想,你不能对不同的组件使用相同的url,但我建议你创建一个主组件,然后根据html中与角色活动相关的子组件检查登录用户的角色。