Angular4 没有加载组件
Angular 4 not loading component
我正在尝试在 Angular 4 应用程序中使用 Angular 路由,但该应用程序无法加载与请求的路由匹配的组件:
这里是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 路由 tutorial。请帮忙。
经过一番排查,我找到了解决方案,并在这个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>
标签的第一个子标签。
嗯,我听错了
exports: [RouterModule]
您正在从 @angular/router 导出一个核心模块,因此您的 AppModule 会被 RouterModule 扩展,而不是您的路由,而不是创建整个模块,只需导出 const
喜欢
export const routing: ModuleWithProviders = RouterModule.forRoot(routes);
并在您的应用模块中导入路由
我正在尝试在 Angular 4 应用程序中使用 Angular 路由,但该应用程序无法加载与请求的路由匹配的组件:
这里是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 路由 tutorial。请帮忙。
经过一番排查,我找到了解决方案,并在这个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>
标签的第一个子标签。
嗯,我听错了
exports: [RouterModule]
您正在从 @angular/router 导出一个核心模块,因此您的 AppModule 会被 RouterModule 扩展,而不是您的路由,而不是创建整个模块,只需导出 const 喜欢
export const routing: ModuleWithProviders = RouterModule.forRoot(routes);
并在您的应用模块中导入路由