Update für (2017-03-13) :
Alle Erwähnungen von moduleId wurden entfernt. Kochbuch "Komponentenrelative Pfade" gelöscht
Wir haben unserer empfohlenen SystemJS-Konfiguration ein neues SystemJS-Plugin (systemjs-angle-loader.js) hinzugefügt. Dieses Plugin konvertiert dynamisch "komponentenbezogene" Pfade in templateUrl und styleUrls für Sie in "absolute Pfade".
Wir empfehlen Ihnen dringend, nur komponentenbezogene Pfade zu schreiben. Dies ist die einzige Form der URL, die in diesen Dokumenten beschrieben wird. Sie müssen nicht mehr schreiben @Component({ moduleId: module.id })
und sollten es auch nicht mehr tun .
Quelle: https://angular.io/docs/ts/latest/guide/change-log.html
Definition:
moduleId?: string
moduleId
Parameter innerhalb der @Component
Annotation nimmt einen string
Wert an, der ist;
" Die Modul-ID des Moduls, das die Komponente enthält. "
Commonjs Nutzung: module.id
,
SystemJS-Verwendung: __moduleName
VerwendungsgrundmoduleId
:
moduleId
wird verwendet, um relative Pfade für Ihre Stylesheets und Vorlagen aufzulösen, wie in der Dokumentation angegeben.
Die Modul-ID des Moduls, das die Komponente enthält. Muss in der Lage sein, relative URLs für Vorlagen und Stile aufzulösen. In Dart kann dies automatisch ermittelt werden und muss nicht eingestellt werden. In CommonJS kann dies immer auf module.id gesetzt werden.
ref (alt): https://angular.io/docs/js/latest/api/core/index/ComponentMetadata-class.html
Sie können die Speicherorte der Vorlagen- und Stildateien relativ zur Komponentenklassendatei angeben, indem Sie einfach die moduleId-Eigenschaft der @ Component-Metadaten festlegen
ref: https://angular.io/docs/ts/latest/cookbook/component-relative-paths.html
Anwendungsbeispiel:
Ordnerstruktur:
RootFolder
├── index.html
├── config.js
├── app
│ ├── components
│ │ ├── my.component.ts
│ │ ├── my.component.css
│ │ ├── my.component.html
Ohne 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
})
Mit 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
})