4

我正在编码观看 Brad Traversy 教程。我完全按照所说的做了。这是我的“app.module.ts”。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import {RouterModule, Routes} from '@angular/router';

import { AppComponent } from './app.component';
import { NavbarComponent } from './components/navbar/navbar.component';
import { LoginComponent } from './components/login/login.component';
import { RegisterComponent } from './components/register/register.component';
import { HomeComponent } from './components/home/home.component';
import { ProfileComponent } from './components/profile/profile.component';
import { DashboardComponent } from './components/dashboard/dashboard.component';

const appRoutes: Routes = [
  {path:'', component: HomeComponent},
  {path:'register', component: RegisterComponent},
  {path:'login', component: LoginComponent},
  {path:'dashboard', component: DashboardComponent},
  {path:'profile', component: ProfileComponent}
] 
@NgModule({
  declarations: [
    AppComponent,
    NavbarComponent,
    LoginComponent,
    RegisterComponent,
    HomeComponent,
    ProfileComponent,
    DashboardComponent
  ],
  imports: [
    BrowserModule,
    RouterModule.forRoot(appRoutes) // appRoutes: an object

  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

这是我的导航栏组件

 <li><a class="nav-link" [routerLink] = "['/']" [routerLinkActive]=" 
['active']">Home</a></li>
 <li><a class="nav-link" [routerLink] = "['/login']" [routerLinkActive]=" 
['active']">Login</a></li>

我还添加了

<base href="/">

到 index.html 文件。

当我删除 RouterLink 部分时,页面运行良好。当我在 URL 中提供路径时,它会显示组件内的内容。

我检查了几个问题。但我已经做了一切,我找不到答案。

4

2 回答 2

2

写 routerLinkActive 如下..删除那些括号

 <li>
    <a class="nav-link" [routerLink] = "['/']" routerLinkActive="active">Home</a>
    </li>
    <li>
    <a class="nav-link" [routerLink] = "['/login']" routerLinkActive="active">Login</a> 
   </li>

官方文档:- https://angular.io/guide/router

于 2018-06-15T12:43:28.837 回答
0

更新:改进我的答案。您要做的是通过添加带有大括号的 [routerLink] 来调用指令。然后将它传递给一个字符串,该字符串将评估为 javascript 到一个路由。这将不起作用,因此您需要向其传递有效的 javascript,例如路由数组。

尝试从 routerlink 中删除斜杠和引号,如下所示:

 <li><a class="nav-link" [routerLink]=['/'] [routerLinkActive]=['active']>Home</a></li>
 <li><a class="nav-link" [routerLink]=['/login'] [routerLinkActive]=['active']>Login</a></li>

如此处所述

如果这不起作用,请随时发表评论,我会更新我的答案。

亲切的问候克里斯

于 2018-06-15T12:32:18.753 回答