打字稿 – 为什么我的angular2应用程序初始化两次?

前端之家收集整理的这篇文章主要介绍了打字稿 – 为什么我的angular2应用程序初始化两次?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请告诉我我的错误在哪里,我的应用程序运行AppComponent代码两次.
我有5个文件

main.ts:

  1. import { bootstrap } from '@angular/platform-browser-dynamic';
  2. import { enableProdMode } from '@angular/core';
  3. import { AppComponent,environment } from './app/';
  4. import { APP_ROUTER_PROVIDERS } from './app/routes';
  5. import {HTTP_PROVIDERS} from '@angular/http';
  6. import {ServiceProvider} from "./app/providers/app.service.provider"
  7.  
  8. if (environment.production) {
  9. enableProdMode();
  10. }
  11. bootstrap(AppComponent,[ServiceProvider,APP_ROUTER_PROVIDERS,HTTP_PROVIDERS]);

routes.ts:

  1. import {provideRouter,RouterConfig} from '@angular/router';
  2. import {AppComponent} from "./app.component";
  3. import {ReportDetailComponent} from "./component/AppReportDetailComponent";
  4. import {ReportsListComponent} from "./component/AppReportListComponent";
  5. import {ReportCreateComponent} from "./component/AppReportCreateComponent";
  6.  
  7.  
  8. export const routes:RouterConfig = [
  9. {
  10. path: 'reports',children: [
  11. {path: ':id',component: ReportDetailComponent},{path:'',component: AppComponent },{path: 'create',component: ReportCreateComponent},{path: 'list',component: ReportsListComponent},]
  12. }
  13. ];
  14. export const APP_ROUTER_PROVIDERS = [provideRouter(routes)];

app.component:

  1. import {Component,OnInit} from '@angular/core';
  2. import {ReportNavComponent} from "./component/AppReportNavComponent";
  3. import { ROUTER_DIRECTIVES } from '@angular/router';
  4. @Component({
  5. moduleId: module.id,selector: 'app-root',templateUrl: 'tpl/app.component.html',styleUrls: ['app.component.css'],directives: [ROUTER_DIRECTIVES,ReportNavComponent]
  6.  
  7. })
  8. export class AppComponent {
  9. constructor() {
  10. }
  11. }

app.component.html:

  1. <report-nav></report-nav>
  2. <router-outlet></router-outlet>

和最后一个AppReportNavComponent.ts:

  1. import {Component} from "@angular/core";
  2. import {ROUTER_DIRECTIVES} from '@angular/router';
  3. @Component({
  4. selector: "report-nav",directives: [ROUTER_DIRECTIVES],template: `<nav>
  5. <a [routerLink]="['/list']">List</a>
  6. <a [routerLink]="['/create']">Create new</a>
  7. </nav>`
  8. })
  9.  
  10. export class ReportNavComponent {
  11. constructor() {
  12. }
  13. }

如果我去/报告我应该看到两个链接“列表”和“创建”
但是在app-root标签里面我看到了辅助app-root标签(在图片上)
screenshot
我的问题是:为什么?

因为您的默认路由指向AppComponent,所以您的路由正在AppComponent中呈现AppComponent:
  1. {path:'',

你可能应该把DashboardComponent或HomeComponent放在那里.

猜你在找的Angularjs相关文章