2016-03-23 3 views
1

Ich bin neu bei eckigen2 und System js.Bundle-Module in einem "Namespace"

wenn ich

import {Component, OnInit} from 'angular2/core'; 

an der Spitze meiner Typoskript-Klasse verwenden, weiß ich, dass ‚angular2/Kern‘ bezieht sich eigentlich auf eine Reihe von verschiedenen Klassen.

Ich möchte wissen, wie Sie dies in meiner eigenen system.js-Umgebung einrichten.

zum Beispiel, wenn ich einen Ordner in meinem app Ordner namens Modell haben, die für jedes „Objekt“ in meinem Projekt eine eigene Klasse enthält:

app/Modell/user.ts app/Modell/object1.ts app/Modell/object2.ts app/Modell/object3.ts

jetzt, um diese Klassen in anderen Teilen meiner app verwende ich jede Datei einzeln an der Spitze meiner ts Klasse importieren

import {User} from '../../model/user'; 
import {object1} from '../../model/object1'; 
import {object2} from '../../model/object2'; 
import {object3} from '../../model/object3'; 

Wie kann ich es ändern, so dass ich so importieren:

import {User, object1, object2, object3} from '../../model/'; 

hier mt Strom system.js eingerichtet:

System.config({ 
    map: { 'app': './Modules/Shifts/app' }, 
    packages: { 
     //sets the root path of the Angular2 App 
     'Modules/Shifts/app': {    
      format: 'register', 
      defaultExtension: 'js' 
     } 
    }   
}); 
System.import('app/boot') 
     .then(null, console.error.bind(console)); 

Wie kann ich diese auf?

Vielen Dank im Voraus

Antwort

2

Die einfache Lösung wäre, eine Hilfsdatei zu erstellen, die notwendigen Klassen Reexporte.

Was Sie tun müssen, ist eine Datei ../../model.ts mit dem Inhalt aufgerufen zu erstellen:

export {User} from './model/user' 
export {object1} from './model/object1' 
// ... 

Jetzt können Sie als

import {User, object1, object2, object3} from '../../model'; 

umschreiben Ihre Importe Oder Sie auch ../../model/index.ts mit angepasster Pfade verwenden könnte export {User} from './user'.

+0

perfekt, danke –