Pembaruan untuk (2017-03-13) :
Semua penyebutan moduleId dihapus. Buku masak "Komponen relatif jalur" dihapus
Kami menambahkan plugin SystemJS baru (systemjs-angular-loader.js) ke konfigurasi SystemJS yang kami rekomendasikan. Plugin ini secara dinamis mengubah jalur "komponen-relatif" di templateUrl dan styleUrls menjadi "jalur absolut" untuk Anda.
Kami sangat menyarankan Anda untuk hanya menulis jalur relatif komponen. Itulah satu-satunya bentuk URL yang dibahas dalam dokumen ini. Anda tidak perlu lagi menulis @Component({ moduleId: module.id })
, juga tidak harus.
Sumber: https://angular.io/docs/ts/latest/guide/change-log.html
Definisi:
moduleId?: string
moduleId
parameter di dalam @Component
anotasi mengambil string
nilai yaitu;
" Id modul dari modul yang berisi komponen. "
Penggunaan CommonJS: module.id
,
Penggunaan SystemJS: __moduleName
Alasan menggunakanmoduleId
:
moduleId
digunakan untuk menyelesaikan jalur relatif untuk stylesheet dan template Anda seperti yang tertulis dalam dokumentasi.
Id modul dari modul yang berisi komponen. Diperlukan untuk dapat menyelesaikan url relatif untuk template dan gaya. Di Dart, ini dapat ditentukan secara otomatis dan tidak perlu diatur. Di CommonJS, ini selalu dapat diatur ke module.id.
ref (lama): https://angular.io/docs/js/latest/api/core/index/ComponentMetadata-class.html
kita dapat menentukan lokasi templat dan gaya file relatif terhadap file kelas komponen hanya dengan mengatur properti moduleId dari metadata @Component
ref: https://angular.io/docs/ts/latest/cookbook/component-relative-paths.html
Contoh penggunaan:
Struktur folder:
RootFolder
├── index.html
├── config.js
├── app
│ ├── components
│ │ ├── my.component.ts
│ │ ├── my.component.css
│ │ ├── my.component.html
Tanpa module.id :
@Component({
selector: 'my-component',
templateUrl: 'app/components/my.component.html', <- Starts from base path
styleUrls: ['app/components/my.component.css'] <- Starts from base path
})
Dengan module.id :
tsconfig.json:
{
"compilerOptions": {
"module": "commonjs", <- need to change this if you want to use module.id property
...
@Component({
moduleId: module.id,
selector: 'my-component',
templateUrl: 'my.component.html', <- relative to the components current path
styleUrls: ['my.component.css'] <- relative to the components current path
})