角度4不加载组件

时间:2017-11-20 11:38:21

标签: angular angular4-router

我尝试在Angular 4应用中使用Angular Routes,但该应用无法加载与所请求路线匹配的组件:

以下是app-routing.module.ts

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

const routes: Routes = [
  { path: 'dashboard', component: DashboardComponent },
  { path: '', redirectTo: '/dashboard', pathMatch: 'full' },
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

app.module.ts看起来像这样:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { AppComponent } from './app.component';
import { DashboardComponent } from './dashboard/dashboard.component';
import { AppRoutingModule } from './app-routing.module';

@NgModule({
  declarations: [
    AppComponent,
    DashboardComponent,
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
  ],
  providers: [ ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

app.component.html:

<h1>
    Welcome to {{title}}!
</h1>
<router-outlet></router-outlet>

我的dashboard.component.html

<p>dashboard works!</p>

我试图弄清楚什么是错的,还看了一下Angular 4 Routing tutorial。请帮忙。

2 个答案:

答案 0 :(得分:2)

经过一些故障排除后我找到了解决方案,并找到了link的答案。基本上,在app.module.ts中,我们只需添加此导入语句即可导入APP_BASE_HREF令牌:

import { APP_BASE_HREF } from '@angular/common';

并将APP_BASE_HREF添加到providers数组:

providers: [ {provide: APP_BASE_HREF, useValue: '/' }],

根据Angular documentation的另一个解决方案是简单地添加<base href="/">作为<head>标记的第一个子项。

答案 1 :(得分:0)

好吧,我弄错了

exports: [RouterModule] 

您正在从@ angular / router导出核心模块,因此您的AppModule会被RouterModule扩展,而不是您的路由,而不是创建整个模块只导出const 喜欢

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

并在您的appmodule中导入路由