Ich versuche, eine Funktion zu schreiben, die mir eine kompilierte Lenkervorlage (ich habe alle meine Vorlagen in separaten Dateien) mit einem Ajax-Aufruf, um die Vorlage zu erhalten und kompilieren für die Verwendung, aber ich muss ein Versprechen verwenden also kann ich es tatsächlich benutzen.
%Vor%Wie mache ich das mit Versprechen, damit ich etwas tun kann wie:
%Vor% Chovy, ich sehe, Sie haben eine Antwort akzeptiert, aber Sie könnten interessiert sein, dass getTemplate
, indem Sie .then()
anstatt .success()
verketten, fast wie in der Frage geschrieben werden:
oder, indem wir charlietfls Idee übernehmen, Daten weiterzuleiten und ein Versprechen eines vollständig zusammengesetzten Fragments zurückzugeben:
%Vor% Der Nettoeffekt ist identisch mit der charlietfl-Version von getTemplate
, aber .then()
macht es unnötig, explizit einen Deferred zu erstellen. Der Code ist somit kompakter.
Im Folgenden wird der Funktion getTemplate
sowie dem Vorlagennamen ein Datenargument hinzugefügt.
Ich habe eine Bibliothek erstellt, die Ihnen bei dieser Art von Problemen behilflich sein kann, finden Sie unter github
Sie müssen dies nur zu Ihrer Haupt-App-Ansicht hinzufügen:
%Vor%setze dies in deine MainApp
%Vor%und zum Beispiel, um ein Modal mit der Vorlage, die Sie wollen, zu öffnen, müssen Sie nur:
%Vor%Und nicht zu vergessen, den FactoryController und RepositoryController
hinzuzufügenTags und Links jquery promise handlebars.js