Angular 2プロジェクトをRC5から2.0.0にアップグレードしているのですが、以下のエラーが発生します。
Unhandled Promise rejection:コンポーネント LoginComponent は モジュールにインポートされていません。 モジュールにインポートされていません。 ; Zone:
; Task:Promise.then ; Value:Error:コンポーネント
Main.tsです。
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);
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 {
}
Login @Component:
@Component({
selector: 'Login',
templateUrl: 'App/Login/Login.html',
providers: [LoginService],
styleUrls: ['App/Login/Login.css']
})
どうしたのですか?
私もRC5からFinalに移行したときに同じ問題が発生し、答えを見つけるのに少し時間がかかりました。この警告はfinalになってからエラーになります。この警告は最終的にはエラーになります。私の答えはこちらです。
この投稿でわかったのは、app.module.tsファイルの中で、コンポーネントを以下のように宣言していたことです。
app.module:
import { AccountComponent, AccountDetails } from './account/index'; import { LoginComponent, ResetPasswordComponent } from './login/index';
しかし、私のroutesファイルでは以下のようになっていました。
import { AccountComponent, AccountDetails } from './Account/Index'; import { LoginComponent, ResetPasswordComponent } from '.Login/Index';
つまり、大文字小文字の違いから、ルートはモジュールとは別のコンポーネントを読み込んでいると勘違いしているのです。
参考になれば幸いです。
私も同じエラーが出ました。コンポーネントの数が多く、app.module.tsで見逃しているものがありましたが、どのコンポーネントかわかりませんでした。
...にlog文を追加することで判明しました。
/node_modules/@angular/compiler/bundles/compiler.umd.js
// I ADDED THIS LOG STATEMENT
console.log('compType', String(compType));
// THIS LINE EXISTS ALREADY
throw new Error("Component " + stringify(compType) + " is not part of any NgModule or the module has not been imported into your module.");
ログステートメントは、app.module.tsに追加し忘れたコンポーネントを表示します。詳細は、ブラウザのコンソールタブでログステートメントの出力をクリックしてください。
完了したら、ログステートメントを削除します。
注:SystemJSの設定ファイルでcompiler.umd.js(compiler.umd.min.jsではない)を使用していることを確認してください。