angular - Membuat Komponen Tersedia untuk Modul Bersarang
Jadi saat ini saya memiliki pengaturan yang terlihat seperti ini:
Modul Aplikasi
Sebuah Modul Besar
Modul Besar Lainnya
- Sebuah Komponen
- Modul Besar Lainnya
- Sebuah Komponen
- Sebuah Modul Besar
- Modul Besar Lainnya
- Sebuah Komponen
Sebuah Komponen TIDAK memiliki akses ke komponen yang dimuat di Sebuah Modul Besar, meskipun komponen-komponen tersebut didefinisikan sebagai deklarasi dan ekspor dari Sebuah Modul Besar.
Apakah ada cara bagi saya untuk memberikan modul bersarang Another Large Module akses ke impor komponen dari A Large Module sehingga komponen anaknya akan memiliki akses ke komponen-komponen tersebut? Ataukah ini perlu dideklarasikan di dalam Another Large Module agar komponen anaknya memiliki akses ke komponen-komponen tersebut?
Jawaban #1
Anda perlu mengimpor hal-hal dalam modul jika komponen yang dideklarasikan di dalamnya menggunakan hal-hal tersebut. Anda dapat membuat modul fitur yang mengimpor/mengekspor/mendeklarasikan sekumpulan komponen dan menggunakannya di modul lain Anda.
- App Module
- FeatureA Module
- FeatureB Module
- Large Module (import FeatureA Module)
- Component [can use components from FeatureA;
can't use components from FeatureB]
- Another Large Module (import FeatureA Module, FeatureB Module)
- Component [can use components from FeatureA and FeatureB]
Jika Large Module dan Another Large Module Anda dimuat secara malas, Anda akan memiliki FeatureA module di kedua file/paket, tetapi beberapa kilobyte tambahan tidak akan berpengaruh. Satu manfaat tambahan adalah keterulangan, Anda dapat menggunakan modul fitur di proyek lain:
- Different App Module
- FeatureA Module
- FeatureB Module
- Different Large Module (import FeatureA Module)
- Component [can use components from FeatureA;
can't use components from FeatureB]
Jawaban #2
Jika Anda ingin membagikan komponen antara modul, cara termudah adalah membuat shared.module.ts :
const SHARED_COMPONENTS = [];
const SHARED_MODULES = [];
@NgModule({
declarations: [
...SHARED_COMPONENTS
],
imports: [
...SHARED_MODULES
],
exports: [
...SHARED_COMPONENTS,
...SHARED_MODULES
]
})
export class SharedModule { }
perhatikan kunci 'exports' ini memungkinkan Anda untuk mengimpor SharedModule Anda di mana pun Anda membutuhkannya dalam hierarki Anda dan menggunakan komponen bersama dari mana saja.
