错误:找不到'AppModule'的NgModule元数据

ser*_*gpa 6 typescript angular

我正在构建一个Angular 2应用程序的问题.我一直在从各个地方锻炼我的复制/粘贴技能,并消除了所有的构建错误,但是当我在浏览器中启动它时,我在浏览器中出错.我看过这篇文章,但它没有解决我的问题.

AppModule看起来像这样:

import { NgModule, ApplicationRef } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import { ROUTES } from './app.routes';
import { HomeComponent } from '../index';

@NgModule({
  bootstrap: [ AppModule ],
  declarations: [
    AppModule,
     HomeComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    RouterModule.forRoot(ROUTES, { useHash: true })
  ]
})
export class AppModule {
}
Run Code Online (Sandbox Code Playgroud)

我是这样开始的:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './index';

platformBrowserDynamic().bootstrapModule(AppModule);
Run Code Online (Sandbox Code Playgroud)

但在我的浏览器中,我收到此错误:

ng_module_resolver.js:34未捕获错误:未找到"AppModule"的NgModule元数据.

我该如何解决这个问题?

更新

我的代码现在看起来像这样,但仍然会生成错误:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import { ROUTES } from './app.routes';
import { HomeComponent } from '../index';
import { AppComponent } from './app.component';

@NgModule( {
    bootstrap: [ AppComponent ],
    imports: [
        BrowserModule,
        FormsModule,
        HttpModule,
        RouterModule.forRoot( ROUTES, { useHash: true } )
    ],
    declarations: [
        HomeComponent,
        AppComponent
    ]
} )
export class AppModule {
}
Run Code Online (Sandbox Code Playgroud)

并且引导:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppComponent } from './index';

platformBrowserDynamic().bootstrapModule(AppComponent);
Run Code Online (Sandbox Code Playgroud)

这是我现在得到的错误:

未捕获错误:未找到"AppComponent"的NgModule元数据

这是一个错误AppComponent,或引导,或模块声明和元数据?文件含糊不清.

Ste*_*ota 5

您的代码中至少存在三个错误。

首先- 您正在引导组件,这是错误的 - 您应该引导模块,根据您的情况AppModuleAppModule您应该选择要引导的组件。

其次- 您指定AppModule为将要引导的组件:

bootstrap: [ AppModule ]
Run Code Online (Sandbox Code Playgroud)

您不能引导模块,但可以引导组件,例如HomeComponent。据我所知,这是您拥有的唯一组件。

第三- 您要添加AppModule其声明:

declarations: [
  AppModule,
  HomeComponent
]
Run Code Online (Sandbox Code Playgroud)

你根本不能这样做,你应该只将组件、指令和管道添加到模块的声明中,即使你可以声明模块,为什么要AppModule在其内部声明呢?试试这个代码:

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    RouterModule.forRoot(ROUTES, { useHash: true })
  ],
  declarations: [ HomeComponent ],
  bootstrap: [ HomeComponent ]
})

export class AppModule {
}
Run Code Online (Sandbox Code Playgroud)

然后引导AppModule

platformBrowserDynamic().bootstrapModule(AppModule);
Run Code Online (Sandbox Code Playgroud)