[英]Angular Lazy Loaded Modules Error - 'RouterModule.forRoot() called twice'
[英]Angular2 - Issue with: RouterModule.forRoot
我正在关注Angular2
教程: 英雄之旅
我的所有教程旅程都按预期进行,但是到达以下几点:
https://angular.io/docs/ts/latest/tutorial/toh-pt5.html#!#add-a-dashboard-
它无法正常工作。
它假定与以下对象一起工作:
1-在文件上:“ app.module.ts”,取消注释代码: RouterModule.forRoot...
2-在文件“ app.component.ts”上,将以下行添加到模板:
<a routerLink="/heroes">Heroes</a>
<router-outlet></router-outlet>
我知道我应该提供一个最小化的代码,但我认为这对我来说是不可能的,因为我不确切知道问题出在哪里。 我可以说的是,我一直在逐步学习本教程,并且一直在努力。
在这里,您可以下载到此为止的源代码:
https://github.com/nightclubso/project_03
就像现在一样,它正在工作。 没有编译问题。 但是,如果您按照上述两点进行操作,则在浏览器控制台上会看到很多错误。
您必须修改的文件(如本教程所建议)是:
app.module.ts
最终具有以下代码:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { HeroDetailComponent } from './hero-detail.component';
import { HeroesComponent } from './heroes.component';
import { HeroService } from './hero.service';
@NgModule({
imports: [
BrowserModule,
FormsModule,
RouterModule.forRoot([
{
path: 'heroes',
component: HeroesComponent
}
])
],
declarations: [
AppComponent,
HeroDetailComponent,
HeroesComponent,
],
providers: [ HeroService ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
和app.component.ts
最终具有以下代码:
import { Component } from '@angular/core';
@Component ({
selector: "my-app",
template: `
<h1>{{title}}</h1>
<a routerLink="/heroes">Heroes</a>
<router-outlet></router-outlet>
`,
})
export class AppComponent {
title: string = "Tour of Heroes";
}
但由于某种原因,它什么也不显示。
关于如何解决这个问题的任何想法?
您刚刚在应用程序中配置了routes
。 因此,由于configured routes
和router-outlet
,您一无所获(作为输出)。 因此,在这里您需要显式提供路由配置,如下所示,
RouterModule.forRoot([
{
path: '',
redirectTo: '/heroes',
pathMatch: 'full'
},
{
path: 'heroes',
component: HeroesComponent
}
])
刚遇到这个问题。 如果查看错误消息,则表明您需要为APP_BASE_HREF令牌提供一个值或添加一个基本元素。 因此,您可以(推荐选项)打开index.html文件并添加
< base href = "/" >
在head元素下面给出:
...
<head>
<base href="/">
<title>Angular QuickStart</title>
...
要么
转到您的app.module.ts文件,然后在您的“ providers:...”数组中添加
{provide: APP_BASE_HREF, useValue : "/" }
赠送:
...
providers: [ HeroService, {provide: APP_BASE_HREF, useValue : '/' } ],
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.