1. ホーム
  2. angular

[解決済み] モジュール 'AppModule' によってインポートされた予期しないディレクティブ 'LoginComponent' があります。NgModuleアノテーションを追加してください。

2022-02-14 09:55:14

質問

Angular 2とMeteorを使っています。Componentsを生成すると、以下のエラーが発生します。

モジュール 'AppModule' によってインポートされた予期しないディレクティブ 'LoginComponent' があります。NgModuleアノテーションを追加してください。

は、app.module.ts ファイルが

import { NgModule, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { MyApp } from './app.component';
import { LoginComponent } from '../../components/login/login.component';
import { SignupComponent } from '../../components/signup/signup.component';
import { ResourcesComponent } from '../../components/resources/resources.component'; 
import { NavbarComponent } from '../../components/navbar/navbar.component';

@NgModule({
  declarations: [
    MyApp,
    LoginComponent,
    SignupComponent,
    ResourcesComponent
  ],
  entryComponents: [
    MyApp
  ],
  imports:[BrowserModule,
  LoginComponent,
  SignupComponent,
  ResourcesComponent
  ],
  bootstrap: [MyApp]
})
export class AppModule {}

で、login.component.ts ファイルは

import 'zone.js';
import 'reflect-metadata';
import { Component } from '@angular/core';
import template from "./login.html";

@Component({
  selector: 'login',
  template
})
export class LoginComponent {}

解決方法は?

NgModule.imports の場合、モジュールのみをリストアップすることができます。コンポーネントではありません。 つまり問題はここなのです。

imports:[BrowserModule, LoginComponent, SignupComponent, ResourcesComponent ]

コンポーネントを削除して NgModules FAQ

<ブロッククオート

何をインポートすればよいですか?

このモジュールのコンポーネント・テンプレートで参照する必要がある、公開 (エクスポート) された宣言可能なクラスがあるモジュールをインポートします。