【发布时间】:2017-01-28 12:55:49
【问题描述】:
我正在尝试从子组件导航到子组件。我有以下 3 条主要路线
--首页
--注册
--登录
在登录模板 (auth.template.html) 中,我可以选择导航到 SignUp。但是我设置如下的路由并没有这样做。它总是给我 http://localhost:xxxx/auth/signup
我无法从身份验证组件加载注册组件。看起来我缺少一些基础知识,但我不确定它是什么。 下面是代码sn-ps。
app.routing.ts
import { Router, RouterModule } from '@angular/router';
import { HomeComponent } from './home/home.component';
import { NotFoundComponent } from './notfound/not-found.component';
export const routing = RouterModule.forRoot([
{ path: '', component: HomeComponent},
{ path: '**', component: NotFoundComponent }
])
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { HomeModule } from './home/home.module';
import { AuthModule } from './authentication/auth.module';
import { SignupModule } from './signup/signup.module';
import { NotFoundModule } from './notfound/not-found.module';
import { routing } from './app.routing';
import { authRouting } from './authentication/auth.routing';
import { signupRouting } from './signup/signup.routing';
import { AuthService } from './authentication/auth.service';
import { AuthGuard } from './authentication/auth-guard.service';
@NgModule({
imports : [BrowserModule, HomeModule, AuthModule, ProfileModule, NotFoundModule, SignupModule, authRouting, signupRouting, routing],
declarations: [AppComponent],
providers : [AuthService, AuthGuard],
bootstrap : [AppComponent]
})
export class AppModule { }
auth.routing.ts
import { Router, RouterModule } from '@angular/router';
import { AuthComponent } from './auth.component';
export const authRouting = RouterModule.forChild([
{ path: 'auth', component: AuthComponent },
])
signup.routing.ts
import { Router, RouterModule } from '@angular/router';
import { SignupComponent } from './signup.component';
export const signupRouting = RouterModule.forChild([
{ path: 'signup', component: SignupComponent }
])
app.template.html
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
....
<div class="navbar-collapse collapse navHeaderCollapse">
<ul class="nav navbar-nav navbar-right" data-toggle="collapse" data-target=".navbar-collapse.in" >
<li>
<a routerLink="">
Home
</a>
</li>
<li>
<a routerLink="signup">
Signup
</a>
</li>
<li >
<a routerLink="auth">
Login
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="container-fluid">
<router-outlet></router-outlet>
</div>
auth.template.html
<div class="form-group">
<p>
Dont have an account yet? Sign up <a routerLink="signup" <strong>here</strong></a>
</p>
</div>
【问题讨论】:
-
在
auth.template中尝试使用routerLink="[./signup]" or routerLink="[../signup]"并告诉我。 -
@micronyks,它给出了错误的路由作为 localhost:55536/auth/%5B./signup%5D
-
试试
[routerLink]="['../signup']"或routerLink="../signup",它们几乎是等价的