2016-04-20 11 views
4

Ich verwende eckige 1.5.3 mit es6, Webpack und Jade Vorlagen.angular 1.5 Komponente Vorlage Webpack require() verursacht Fehler

Alles funktioniert wie erwartet, außer für die Vorlagen der Komponente.

Dies funktioniert

var cmpnt = { 
    template: '<div>test</div>' 
} 

Dies funktioniert auch (wenn ich die HTML-Datei manuell erstellen)

var cmpnt = { 
    template: require('./component.html') 
} 

Das funktioniert nicht

var cmpnt = { 
    template: require('./component.jade') 
} 

im Browser-Konsole, erhalte ich

Error: [$injector:unpr] Unknown provider: localsProvider <- locals

Die .jade Datei vorhanden ist, und ich bin mit require('./template.jade') in vielen anderen Orten der App ohne Probleme.

Irgendwelche Ideen? Weitere Informationen, die ich zur Verfügung stellen kann?

+0

Was aussehen tut component.jade? Wenn Sie einen Fehler wie diesen haben, den Sie hatten. Es bedeutet, dass Sie versuchen, etwas (wahrscheinlich ein Service) injiziert Einheimischen in einen Ihrer Controller/services/configs/etc ... –

+0

Im Moment ist es nur "h1 test". Ich injiziere nichts in diese Komponente. Es ist nur ein Stummel. – creimers

+0

Was ist mit dem Rest Ihrer Anwendung? –

Antwort

8

jade-loader gibt eine Funktion zurück. Sie können diese Funktion nicht zur Vorlage übergeben, müssen Sie die Funktion aufzurufen, bevor übergeben es

var cmpnt = { 
    template: require('./component.jade')(); 
} 

Kenntnis der Aufruf der Funktion nach require

+0

Danke, das macht den Trick in der Tat! – creimers

+0

großartige Lösung für mein Problem, aber ich bin ein wenig erstaunt, dass dies in einer Komponente erforderlich ist, aber nicht zum Beispiel in einem Template-Attribut einer UI-Route. Es ist ein Fehler, der mich mindestens eine Stunde lang verwirrt hat – Mattijs

Verwandte Themen