路线显示重复表格

sty*_*ane 1 angular2-routing angular2-components angular

我在angular2中启动了一个项目,但是由于某种原因,我的路线两次显示了我的组件。这是相关的代码片段。

应用程序路由

// Some import 
import { AuthComponent } from './master/auth';

const appRoutes: Routes = [
  {
    path: 'master/registration',
    component: AuthComponent
  }
];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
Run Code Online (Sandbox Code Playgroud)

app.module.ts

import { AuthComponent } from './master/auth/auth.component';

import { AppComponent } from './app.component';
import { routing } from './app.routing';

@NgModule({
  declarations: [
    // components
    AuthComponent
 ],
 providers: [
 // some providers
 ],
 imports: [
    BrowserModule,
    ReactiveFormsModule,
    routing
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

app.component.html包含<app-auth></app-auth>

auth.component.ts

import { Component, OnInit } from '@angular/core';
import * as all from './auth-utils';
@Component({
  moduleId: module.id,
  selector: 'app-auth',
  templateUrl: 'auth.component.html',
  styleUrls: ['auth.component.css']
})
export class AuthComponent implements OnInit {

  constructor() {}

  ngOnInit() {
  }

}
Run Code Online (Sandbox Code Playgroud)

auth.component.html

<app-register-form [fields]="fields"></app-register-form>
<app-login-form [loginFields]="loginFields"></app-login-form>
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

我在这里想念什么?

nic*_*oon 5

在我看来,您似乎正在AuthComponent使用其选择器将您的模板直接包含在模板中<app-auth></app-auth> 路由至它,以便它出现在您的模板中<router-outlet>。您只想做一个或另一个。

由于您尝试路由到AuthComponent,因此请<app-auth></app-auth>从模板中删除。实际上,由于AuthComponent是路由目标,因此根本不需要选择器,因此您可以通过从其组件注释中删除该行来消除一些混乱:

@Component({
  moduleId: module.id,
  /* selector: 'app-auth', */
  templateUrl: 'auth.component.html',
  styleUrls: ['auth.component.css']
})
export class AuthComponent...
Run Code Online (Sandbox Code Playgroud)