2017-01-26 4 views
0

Mit AngularJS Routing gefunden, manchmal bekomme ichAngularJS Vorlage 404 nicht

template/home.html Failed to load resource: 
        the server responded with a status of 404 (Not Found) 

Aber ich erklärte template/home.html inline

<script type="text/ng-template" id="template/home.html"> 
    ...template stuff... 
</script> 

unerwartet ich nicht 404 alle mal tun, aber manchmal .

Ich habe schon gelesen this stackoverflow, wo sie diese Regel https://docs.angularjs.org/api/ng/service/ $ templateCache erinnern

Hinweis: der Tag-Skript die Vorlage enthält, muss nicht im Kopf des Dokuments enthalten sein, aber es muss ein Abkömmling des $ rootElement (IE, Element mit ng-app-Attribut) sein, andernfalls wird die Vorlage ignoriert.

Ich habe meine AngularJS App ohne ng-App erklärt, sondern durch Bootstrap

angular.bootstrap(document, ['myapp']); 

Also mein $ rootElement ist das Dokument. Tatsächlich bekomme ich die 404 Fehler nicht jedes Mal. Gibt es Race Conditions: manchmal wird $ routerProvider gesetzt, bevor $ templateCache mit meiner Inline-Vorlage gesetzt wird.

Ich benutze requirs. Könnte es die Ursache sein?

Irgendwelche Hilfen?

Antwort

0

Ich denke, Sie können versehentlich Ihre ng-Vorlage-Skript außerhalb des Tags, wo Sie Ihre wichtigsten eckigen App definieren.

<body ng-app="myApp"> 

    // Your Template shuld stay here 

    <script type="text/ng-template" id="template/home.html"> 
    ...template stuff... 
    </script> 
</body> 
+0

Wie ich gerade in meiner Frage geschrieben habe, habe ich meine AngularJS App ohne ng-App erklärt, sondern durch Bootstrap angular.bootstrap (Dokument, [ 'myapp']); –

+0

Entschuldigung, ich habe diesen Teil verpasst. hast du versucht, ng-app zu verwenden, vielleicht verengt es die Quelle des Problems –

+0

Ich brauche mehr Kontrolle über den Initialisierungsprozess, so dass ich manuelle Bootstrap benutze. Ich kann ng-app nicht hinzufügen, da angularjs sagt "Sie sollten die ng-app-Direktive nicht verwenden, wenn Sie Ihre App manuell starten" –