Können Eckige Vorlage, rufen Sie die Funktion Rückkehr Versprechen
Eckig $q-Dokumentation sagt "$q Versprechungen sind anerkannt durch die Template-engine im Winkel, was bedeutet, dass in den Vorlagen, die Sie behandeln können Versprechen, befestigt an einem Rahmen, als wären Sie die resultierenden Werte."
Winkel der Ansicht Schablonen können Sie auch Ausdrücke auszuwerten, was bedeutet, können Sie Funktionen aufrufen, die ausgesetzt, die aus dem Anwendungsbereich.
Ich habe festgestellt, dass ein view-template ist in der Lage, beziehen sich auf Reale Werte, Versprechungen (die sich schließlich auflösen, um die real Werte), oder Funktionen zurückgeben real-Werte, nicht aber die Funktionen zurückgeben, Versprechungen, die immer dargestellt {}
in die anzeigen-Vorlage.
Ich erstellt eine Geige mit ein Beispiel dazu.
Kann jeder, besser machen oder lenken mich in die richtige Richtung?
(Vielleicht mit einer Funktion in das view template ist eine schlechte Idee; es gibt auch andere Probleme mit dieser Technik, weil die Winkel zu beobachten, eine Funktion kann nicht sagen, ob es geändert werden, ohne den Aufruf der Funktion, so dass die beobachtete Funktion wird ausgewertet, auf jeden digest-Zyklus. Ich habe gesehen, diese zwei Fragen und in beiden von Ihnen, die empfohlene Antwort war der Einsatz Versprechen.dann ändern Sie eine normale Eigenschaft auf den Umfang und die haben die anzeigen-Vorlage beobachten Sie die normal-Eigenschaft anstelle der Versprechen. Ich verstehe, dass, aber für meinen Gebrauch ich versorgen wollen einige Parameter um einen Wert zu ermitteln, und es ist bequemer zu liefern, diese Parameter direkt in die anzeigen-Vorlage. Im Grunde versuche ich, etwas zu schreiben, wie url_for in Kolben oder Schienen.)
InformationsquelleAutor metamatt | 2013-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht ganz sicher, aber wenn Sie ein Objekt zurückgeben, mit dem Versprechen, als eine Eigenschaft, es funktioniert. (fiddle)
HTML:
Jup, funktioniert bei mir. Wenn ich mehr Zeit haben werde ich versuchen zu Graben, in die Quelle und herausfinden, warum, und ob es ein bug ist würdig der Berichterstattung, dass die raw-Versprechen von einer Funktion zurückgegeben funktioniert nicht. Dies ist ein trick, aber.
InformationsquelleAutor Jason Goemaat
Einen Versprechen stellt einen Wert in der Zukunft, in der Regel eine Zukunft, die das Ergebnis einer asynchronen operation, und ermöglicht es uns, zu definieren, was wird passieren, wenn dieser Wert verfügbar ist, oder wenn ein Fehler Auftritt.
Referenz
Können Sie wickeln Sie jeden Wert mit dem Versprechen, mit Hilfe der utility-Methode
$q.when()
.==============================
In deinem Beispiel:
HTML
JS
Demo Fiddle
(Ich Stimmen Sie Ihre Lösung funktioniert, und angesichts der Art und Weise Uhren-bewerten-Funktionen im überwachten Ausdrücke jeder digest-Zyklus, vielleicht ist es für das beste, zu vermeiden Sie die Verwendung von Funktionsaufrufen in den view-templates. Allerdings würde ich gerne verstehen, warum Eckige handhaben kann, Funktionsaufrufe und verspricht im template-Ausdrücke aber nicht zusammen.)
Im Allgemeinen würde ich
promise
Logik in service (Singleton) und verwenden Sie es als utilityAutomatisches unwrapping Versprechungen nicht mehr Arbeit in Eckige >= 1.2.0 - siehe Diskussionen in #4158, #4270 und #5153
InformationsquelleAutor Maxim Shoustin