首页 文章

在角度2中遇到路由器问题

提问于
浏览
0

用户登录系统后,我有一个像 DashboardCustomersProduct 这样的导航栏 . 这就是我设置路线文件的方式 .

app.routing.ts

export const router: Routes = [
{
    path: '',
    redirectTo: 'admin',
    pathMatch: 'full',
    canActivate: [AuthGuard],
},
{
    path: 'admin',
    component: AdminComponent,
    canActivateChild: [AuthGuard],
    children: [
        {
            path: 'customer',
            component: CustomerComponent
        },
        {
            path: 'product',
            component: ProductComponent
        },
        {
            path: '',
            component: DashboardComponent
        }
    ]
},
{ path: 'login', component: LoginComponent }
];

export const routes: ModuleWithProviders = RouterModule.forRoot(router);

我的 app.component.html 文件作为基本文件 . 这里没有包含app.component.ts文件,它包含export class和templateUrl

<router-outlet></router-outlet>

我的 admin-dashboard.component.ts 档案

@Component({
selector: 'app-admin',
template: `
    <div class="wrapper">
        <!-- Start of the navigation bar -->
        <app-navbar></app-navbar>
        <!-- END NAVIGATION -->
          <div class="customer-panel">
            <router-outlet></router-outlet>
          </div><!-- End of the customer panel -->

    </div><!-- /end wrapper -->
`
 })
 export class AdminComponent implements OnInit {}

这是 navbar.component.html 文件

<div class="collapse navbar-collapse" id="navigate">
          <ul class="nav navbar-nav">
            <li><a routerLink="" routerLinkActive="active">Dashboard</a></li>
            <li><a routerLink="customer" routerLinkActive="active">Customers</a></li>
            <li><a routerLink="product" routerLinkActive="active">Products</a></li>
            <li><a routerLink="user">User</a></li>
            <li><a href="product-transactions.html">Transactions</a></li>
            <li><a href="#">Reports</a></li>
          </ul>
        </div>

所以,我所做的是我的应用程序加载app.component.html文件,其中包含 router-outlet . 然后加载 admin.component.html 文件,我也加载了其他导航栏链接作为 admin.component.ts 文件的子项,这里也是 router-outlet . 它运行良好,但 routerLinkActive 无效,因为 Dashboard 链接始终处于活动状态 . 那么,我的路线设计是否合适?建议请 .

1 回答

  • 2

    我认为您需要在仪表板链接中包含 routerLinkActiveOptions ,如下所示:

    <li><a routerLink="" routerLinkActive="active" [routerLinkActiveOptions]="{exact:true}">Dashboard</li>
    

相关问题