javascript - Angular 2 (CLI) 路由不起作用(无法读取未定义的属性 'split')

标签 javascript angularjs angular typescript url-routing

为什么路由仅适用于 AppComponent 之后的第一个导入组件(下面的示例代码:路由仅适用于“PageNonFound”)?另外,我注意到在我的项目中添加路由后出现错误

错误

Error in ./AppComponent class AppComponent - 
inline template:13:42 caused by: 
Cannot read property 'split' of undefined

应用程序模块.ts

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

import { AppComponent } from './app.component';
import { PageNotFoundComponent } from './page-not-found/page-not-found.component';
import { HomeComponent } from './home/home.component';

const appRoutes: Routes = [
  { path: '', redirectTo: '/home', pathMatch: 'full' },
  { path: '**', component: PageNotFoundComponent },
  { path: 'home', component: HomeComponent }
];

@NgModule({
  declarations: [
    AppComponent,
    PageNotFoundComponent,
    HomeComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    RouterModule.forRoot(appRoutes)
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

应用程序组件.ts

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'testing';
}

App.component.html

<nav class="nav navbar navbar-custom navbar-fixed-top" role="navigation">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" [routerLink]="['/home']">Test</a>
    </div>
    <div>
      <div class="collapse navbar-collapse" id="navbar">
        <ul class="nav navbar-nav">
          <li><a [routerLink]="['/home']" [routerLinkActive]="active">Home</a></li>
        </ul>
      </div>
    </div>
  </div>
</nav>
<router-outlet></router-outlet>

版本:

angular-cli: 1.0.0-beta.28.3
node: 6.9.4
os: darwin x64
@angular/common: 2.4.9
@angular/compiler: 2.4.9
@angular/core: 2.4.9
@angular/forms: 2.4.9
@angular/http: 2.4.9
@angular/platform-browser: 2.4.9
@angular/platform-browser-dynamic: 2.4.9
@angular/router: 3.4.9
@angular/compiler-cli: 2.4.9

最佳答案

使用routerLinkActive="active"

[routerLinkActive]="['active']"

改变路线顺序

const appRoutes: Routes = [
  { path: 'home', component: HomeComponent },
  { path: '', redirectTo: 'home', pathMatch: 'full' },
  { path: '**', component: PageNotFoundComponent }, 
];

关于javascript - Angular 2 (CLI) 路由不起作用(无法读取未定义的属性 'split'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42615110/

相关文章:

javascript - 如何解决根据窗口宽度/高度自动调整大小的网站中的手机/电话键盘

javascript - 使用 javascript 添加更多功能时不显示文本编辑器

angularjs - 动态更改Recaptcha V2语言

javascript - 单击 Angular 5 调用函数

css - 来自路由器导出的粘性底部元件

javascript - 同时按日期和时间对数组进行排序?

javascript - 在javascript中查找特定单词(正则表达式)中的字符类型

angularjs - 为什么 $stateParams 在解析中可用,但解析中的 DI 服务不可用?

javascript - Angular Material 无法正常工作

angular - 在 Angular 中下载文件时无法获取进度和文件