モジュールを遅延ロードでロードしています。ある形式のモジュールを別のモジュールで使用する必要がある状況にあります。
たとえば、製品モジュールとブランドモジュールがあります。どちらも遅延読み込みで読み込まれます。しかし、私はユーザーが製品フォーム内でブランドを登録できるようにしたかったのです。しかし、私の質問は、両方のモジュールが遅延ロードされるということです。
本当に2つのモジュールを完全にロードする必要がありますか?または、必要なコンポーネントのみをロードできますか?
遅延読み込みの読み込み:
const productRoutes: Routes = [
{
path: 'product',
loadChildren: 'app/admin/product/product.module#ProductModule',
canLoad: [AuthGuard]
}
];
const brandRoutes: Routes = [
{
path: 'brand',
loadChildren: 'app/admin/brand/brand.module#BrandModule',
canLoad: [AuthGuard]
}
];
私のコンポーネント:
....
<div class="form-group">
<label for="exemplo">Create Name Product</label>
<input type="text" name="name" [(ngModel)]="Product.name" #name="ngModel" >
</div>
<div class="form-group">
<label for="exemplo">Create Brand</label>
<brand-form-component></brand-form-component>
</div>
[〜#〜]編集[〜#〜]
共有モジュールを作成しました:
import { NgModule } from '@angular/core';
import { FormComponent as
FormBrandComponent } from '../../brand/brand-form/form.component'
@NgModule({
imports: [ ],
declarations: [ FormBrandComponent ],
providers: [ FormBrandComponent ],
exports: [ FormBrandComponent ],
})
export class SharedModule { }
そして、私は他のモジュールにインポートしました:
ブランドモジュール
import { SharedModule }from '../shared/shared.module';
@NgModule({
imports: [ SharedModule, DialogModule, GrowlModule, Ng2PaginationModule, BrandRouting ],
declarations: [ BrandComponent, ListComponent ],
providers:[ BrandService ]
})
export class BrandModule {}
製品モジュール
import { SharedModule }from './shared/shared.module';
@NgModule({
imports: [ SharedModule, CurrencyMaskModule, DragulaModule, GrowlModule, DialogModule, Ng2PaginationModule, productRouting, ReactiveFormsModule ],
declarations: [ ProductComponent, FormComponent, ListComponent ],
providers:[ FormComponent, ProductService, BreadService, MarcaService, GradeService ]
})
export class ProductModule { }
しかし、次のエラーが発生しています。
遅延読み込みの現在の実装はモジュールレベルであり、それはすべてかゼロかです。 2つの間でコンポーネントを共有する必要がある場合(これはどのように聞こえるか)、まだ完全に識別されていない非表示の共有モジュールがある可能性があります。したがって、これらの共有コンポーネント/サービスを格納する新しいモジュールを作成し、そのモジュールを他の2つの遅延ロードされたモジュールにインポートする必要がある可能性があります。
その新しいモジュールを怠惰にするか、熱心にロードするかはあなたの選択です-どちらでも機能します。 (これは製品モジュールとブランドモジュールの両方の依存関係であるため、どちらかがロードされると、新しいモジュールもロードされます)。