我正在学习Angular2路由并尝试显示欢迎页面。 我的应用有三页
问题是我无法显示欢迎页面。它会自动加载主页并默认显示HomeComponent中的内容。
如屏幕截图所示,我只想显示2个链接。我想只在点击它时从Home / Todo加载内容。但默认情况下,它会转到localhost:xxx / Home并加载主页。
我试图设置'' AppComponent的空白路径如下所示,但它会加载AppComponent两次并显示链接两次。
{ path: '', component: AppComponent, pathMatch: 'full' },
app.module.ts
@NgModule({
imports: [
BrowserModule,
HttpModule,
RouterModule.forRoot([
{ path: 'home', component: HomeComponent },
{ path: 'todo', component: TodoListComponent },
{ path: '**', redirectTo: 'home', pathMatch: 'full' }
])
],
declarations: [
AppComponent,
HomeComponent,
TodoListComponent
],
bootstrap: [AppComponent],
})
export class AppModule { }
app.component.ts
import { Component } from "@angular/core"
@Component({
moduleId: module.id,
selector: 'app',
template: `
<div>
<nav class='navbar navbar-default'>
<div class='container-fluid'>
<a class='navbar-brand'>{{pageTitle}}</a>
<ul class='nav navbar-nav'>
<li><a [routerLink]="['/home']">Home</a></li>
<li><a [routerLink]="['/todo']">To Do</a></li>
</ul>
</div>
</nav>
</div>
<div class='container'>
<router-outlet></router-outlet>
</div>
`
})
export class AppComponent {
}
主/ home.component.ts
import { Component } from '@angular/core';
@Component({
moduleId: module.id,
templateUrl: "home.component.html"
})
export class HomeComponent {
}
主/ home.component.html
<h1>Hello from Home Component</h1>
<h2>This is my first TODO App for Angular 2...</h2>
答案 0 :(得分:3)
我认为显示HomeComponent
的原因是因为当网址为/ home时,您的<router-outlet></router-outlet>
将使用home
更改基础组件。你的app.module.ts
{ path: '**', redirectTo: 'home', pathMatch: 'full' }
,
这意味着所有与/home
或/todo
不匹配的网址都会弹出您的HomeComponent
。您可以尝试删除重定向:
{ path: '**', redirectTo: 'home', pathMatch: 'full' }
或者重定向到''
(或新的PageNotFoundComponent
)。
还要确保在页面加载时没有选择菜单中的任何项目(主页或待办事项)。
答案 1 :(得分:2)
您需要删除此行 {path:'**',redirectTo:'home',pathMatch:'full'}
你在上面提到的内容是如果/ home或/ todo之外的其他网址请重定向到/ home。所以它总是显示Home。
所以你的app.module.ts应该是
@NgModule({
imports: [
BrowserModule,
RouterModule.forRoot([
{ path: 'home', component: HomeComponent },
{ path: 'todo', component: TodoListComponent },
{ path: '**', redirectTo: 'home', pathMatch: 'full' }
])
],
declarations: [
AppComponent,
HomeComponent,
TodoListComponent
],
bootstrap: [AppComponent],
})
export class AppModule { }
检查以下链接,以便在角度2中使用路由 http://www.angularinfo.com/routings/