2015-12-17 6 views
6

Immer wenn wir laden .html Dateien einige Controller in eckigen. Führt angular einen ajax Aufruf zum Retrive, dass html.Loading Angular View

Wie dieses Stück Code.

.state('home', { 
       url: '/', 
       templateUrl: '/Modules/Signin/signin.html', 
       controller: 'SigninCtrl' 
      }) 

ich meine fragen während signin.html holen

  • ist ein ajax Anruf gemacht?
  • Oder werden sie als normale Ressourcen geladen?
  • Wenn ein ajax Aufruf erfolgt, wo finde ich einige Dokumentation darüber geschrieben.

Antwort

2

separat geladen wird, wenn Ihr, dass Code ausgeführt wird, Angular erste Lookup die HTML-Vorlage in $templateCache mit dem id/Modules/Signin/signin.html.

Wenn es findet nicht, dass in den $templateCache dann ja, Angular wird ein AJAX Telefonieren $http mit dem HTML-Inhalt und , um es als normale Ressource geladen werden, das unter der URL befinden sollte, wie :

http://example.com/Modules/Signin/signin.html 

Sie können es in der Entwicklerkonsole Ihres Browsers überprüfen, dass ein AJAX-Aufruf ausgeführt wurde.

Lesen Sie mehr über $templateCache.

Grundsätzlich wird jede Vorlage im $templateCache gespeichert, wenn sie nicht bereits im Cache gespeichert ist. Also, wenn Sie die folgend in Ihrem index.html oder an jedem Ort zu definieren (wie, wo Ihre angular installiert ist):

<script type="text/ng-template" id="/Modules/Signin/signin.html"> 
    <p>This is the content of the template</p> 
</script> 

Jetzt als Angular Schopf aus dem Sumpf, wird es /Modules/Signin/signin.html so jetzt Ihr state Code ein Daten in Ihrem $templateCache mit id sein erstellt keinen AJAX, sondern lädt einfach den oben definierten Inhalt.

1

Ich denke ein Anruf wird gemacht, wenn ich in mein eigenes Projekt schaue. Sie haben in dem Element inspizieren die Registerkarte Netzwerk, wie Sie Sie nachladen sehen, dass jeder html Teil

1

In ui-router zumindest (vorausgesetzt, die Ansicht ist nicht in der VorlageCache) Ansicht HTML-Dateien werden mit einem GET auf die URL der Datei statt mit einem AJAX-Aufruf an einen Endpunkt abgerufen. In Ihrem Fall ist es ein GET zu <your root URL>/Modules/Signin/signin.html - Sie können dies in den Entwicklungstools Ihres Browsers sehen.