我正在将我的 Angular 2 项目从 RC5 升级到 2.0.0。我得到这个错误
Unhandled Promise rejection: Component LoginComponent is not part of any NgModule or the module has not been imported into your module. ; Zone: ; Task: Promise.then ; Value: Error: Component
主要.ts:
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);
应用模块:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import {RouterModule} from "@angular/router";
import {AppsAdminComponent} from './AppsAdmin/AppsAdmin.component';
import {AppsManagerComponent} from './AppsManager/AppsManager.component';
import {LoginComponent} from './Login/Login.component';
import {LogoutComponent} from './Logout/logout.component';
import { Routing } from './App.routing';
import {HttpModule} from '@angular/http';
//import {AppsManagerService} from './Service/AppsManager.service';
import {GlobalService} from './Service/GlobalService';
import {Webservice} from './Service/Webservice';
@NgModule({
declarations: [
AppComponent,
LoginComponent,
LogoutComponent,
AppsAdminComponent,
AppsManagerComponent
],
imports: [
BrowserModule,
HttpModule,
FormsModule,
Routing
],
providers: [
GlobalService,
Webservice
],
bootstrap: [
AppComponent
]
})
export class AppModule {
}
登录@Component:
@Component({
selector: 'Login',
templateUrl: 'App/Login/Login.html',
providers: [LoginService],
styleUrls: ['App/Login/Login.css']
})
怎么了?
最佳答案
我在从 RC5 到 Final 时遇到了同样的问题,我花了一些时间才找到答案。在记得我收到警告消息“NgModule AppModule 通过“LoginComponent”使用 LoginComponent 但它既未声明也未导入!此警告在最终后将成为错误后,我终于找到了答案。”当我最终查看该错误消息时,我发现我的答案可能与您的相似。我找到了答案 here .
这篇文章告诉我的是,在我的 app.module.ts 文件中,我声明了我的组件如下:
应用程序模块:
从 './account/index' 导入 { AccountComponent, AccountDetails };
从 './login/index' 导入 { LoginComponent, ResetPasswordComponent };
但是在我的路由文件中是这样的:
从 './Account/Index' 导入 { AccountComponent, AccountDetails };
从 './Login/Index' 导入 { LoginComponent, ResetPasswordComponent };
因此,由于大小写的差异,路由认为它加载的组件与模块不同,这意味着被拉入路由的组件与模块不同。
希望对您有所帮助。
关于Angular 2 Component 不是任何 NgModule 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39527722/