4

複数のコンポーネントをモジュール ( ) にバンドルし、Widget1Moduleそのモジュールを別のモジュール ( AdminModule) に挿入して、すべてのコンポーネントが 内AdminModuleのコンポーネントにアクセスできるようにしたいと考えていますWidget1Module

これを実行したいのは、declarations配列がAdminModule大きくなって管理不能になるのを避けるためです。問題の詳細については、以下を参照してください。

次のようなモジュールファイルがあります。

import { CommonModule } from '@angular/common';
import { RoutingModule } from './admin-routing.module';

import { Declaration1 } from "./declaration1.component";
import { Declaration2 } from "./declaration2.component";
import { Declaration3 } from "./declaration3.component";

    @NgModule({
    imports: [
        CommonModule,
        RoutingModule,

    ],
    declarations: [
        Declaration1,
        Declaration2,
        Declaration3,
    ]
    })

export class AdminModule {}

Widget1Componentどの「宣言」モジュール内でも使用できるコンポーネント ( ) を作成したいと考えています。私はこのようなことができることを知っています:

import { CommonModule } from '@angular/common';
import { RoutingModule } from './admin-routing.module';

import { Declaration1 } from "./declaration1.component";
import { Declaration2 } from "./declaration2.component";
import { Declaration3 } from "./declaration3.component";

import { Widget1 } from "./widget1.component";

    @NgModule({
        imports: [
            CommonModule,
            RoutingModule,

        ],
        declarations: [
            Declaration1,
            Declaration2,
            Declaration3,
            Widget1
        ]
        })

    export class AdminModule {}

これは機能しますが、このアプリケーションが成長するにつれて、すべてのウィジェットを別のモジュールにバンドルし、そのモジュールをこのモジュールに挿入できるようにしたいと考えています。

import { CommonModule } from '@angular/common';
import { RoutingModule } from './admin-routing.module';

import { Declaration1 } from "./declaration1.component";
import { Declaration2 } from "./declaration2.component";
import { Declaration3 } from "./declaration3.component";

import { Widget1Module } from "./widget1.module";

    @NgModule({
        imports: [
            CommonModule,
            RoutingModule,
            Widget1Module
        ],
        declarations: [
            Declaration1,
            Declaration2,
            Declaration3
        ]
        })

    export class AdminModule {}

しかし、このようなことをしようとすると、アプリケーションが に含まれるウィジェットについて認識していないというエラーが表示され続けますWidget1Module

4

1 に答える 1