javascript - Angular 2 中的路由器出现问题

标签 javascript angular routes navbar router

用户登录系统后,我有一个导航栏,例如仪表板客户产品。这就是我设置路线文件的方式。

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文件,它包含导出类和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>

所以,我所做的是我的应用程序加载包含 router-outlet 的 app.component.html 文件。然后加载 admin.component.html 文件,并使用 router-outlet 文件加载其他导航栏链接作为 admin.component.ts 文件的子级也在这里。它运行良好,但 routerLinkActive 不起作用,因为 Dashboard 链接在此处始终处于事件状态。那么,我的路线设计好吗?请提出建议。

最佳答案

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

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

关于javascript - Angular 2 中的路由器出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41163653/

相关文章:

javascript - 惊人的 CSS Div 滚动效果,无法解释,提供链接。这是一个网页设计问题,如何获得这样的效果?

angular - 组件声明、模板变量声明和元素引用不包含此类成员

php - laravel 5.4 自动重定向到 404 页面

angular - 类型 'distinctUntilChanged' 上不存在属性 'Observable<Event>'

javascript - 结果未显示在自动完成中( Angular )

ruby-on-rails - 在 Hartl 教程之后向 Rails 应用程序添加密码重置功能

ruby-on-rails-3 - Rails 3 - 路由到用户配置文件

javascript - 如何从 Electron 中的另一个脚本访问 mainWindow?

javascript - 如何参数化模块,以便它可以按需配置需要它的应用程序?

javascript - 如何从本地文件 url ("file:///"访问react-app构建,而不使用任何HTTP服务器?