【发布时间】:2021-02-07 12:14:07
【问题描述】:
我的 Angular 应用程序中有 3 个组件 - 登录、市场和注册。登录组件是我的登陆组件。我在登录页面上有两个按钮 - 登录和注册。单击登录按钮应将我带到市场组件,单击注册按钮应将我带到注册组件。单击注册后我可以导航到注册组件,但是单击登录后我无法导航到市场组件。URL 更改为 localhost:4200/markets,但是没有加载市场组件。登录组件保持原样。控制台中没有错误。附加组件的 sn-ps。
signin.component.html
<button type="button" class="btn btn-primary" [routerLink]="['../markets']">Sign in</button>
<button type="button" class="btn btn-secondary" [routerLink]="['../register']">Sign Up</button>
<router-outlet></router-outlet>
register.component.html
<button type="button" class="btn btn-primary" [routerLink]="['../signin']">Register</button>
<router-outlet></router-outlet>
app.component.html
<signin></signin>
app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { SigninComponent } from './signin/signin.component';
import { RegisterComponent } from './register/register.component';
import { MarketsComponent } from './markets/markets.component';
const routes: Routes = [
{ path: "signin", component: SigninComponent},
{ path: "register", component: RegisterComponent},
{ path: "markets", component: MarketsComponent}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
【问题讨论】:
-
你的app组件有没有router outlet组件
-
app.component.html 只有登录组件的选择器 (
)。 app.module.ts 在导入中有应用路由模块。 -
正如@HitechHitesh 所说,您需要在app.component 中使用
<router-outlet></router-outlet>标签而不是signin。它说明了放置已创建组件的角度。如果您想默认显示登录,请将{ path: "", redirectTo: "/signin", pathMatch: 'full'},添加到您的路线中。这是一篇关于路由如何工作的法语但很好的文章:wetry.tech/les-secrets-du-router-d-angular
标签: angular