Wie Sie wissen, haben sowohl Winkel als auch Zweig eine gemeinsame Steuerungskonstruktion - doppelte geschweifte Klammern. Wie kann ich den Standardwert von Angular ändern?
Ich weiß, dass ich es in Twig schaffen kann, aber in einigen Projekten kann ich es nicht, nur JS.
verbatim
Tags. Beispiel: Um{% verbatim %}{{ angular_var }}{% endverbatim %}
Ihre Schnurrbärte für AngularJS zu erhalten: twig.sensiolabs.org/doc/tags/verbatim.htmlAntworten:
Sie können die Start- und Endinterpolations-Tags mithilfe des
interpolateProvider
Dienstes ändern . Ein geeigneter Ort hierfür ist die Modulinitialisierungszeit.https://docs.angularjs.org/api/ng/provider/$interpolateProvider
quelle
[[myObject[myArray[index]]
{[{}]}
mit Django, obwohl es etwas seltsam zu tippen ist. Ich habe die Antwort aktualisiert.Diese Frage scheint beantwortet zu sein, aber eine elegantere Lösung, die nicht erwähnt wurde, besteht darin, die geschweiften Klammern einfach in Anführungszeichen zwischen die geschweiften Klammern des Zweigs zu setzen, wie folgt:
Wenn Sie eine Variable für den Inhalt verwenden, gehen Sie stattdessen folgendermaßen vor:
Sie sollten einfache Anführungszeichen verwenden , keine doppelten Anführungszeichen. Doppelte Anführungszeichen ermöglichen die String-Interpolation durch Twig, sodass Sie mit dem Inhalt vorsichtiger umgehen müssen, insbesondere wenn Sie Ausdrücke verwenden.
Wenn Sie es immer noch hassen, all diese geschweiften Klammern zu sehen, können Sie auch ein einfaches Makro erstellen, um den Prozess zu automatisieren:
Speichern Sie es als Datei und importieren Sie es in Ihre Vorlage. Ich benutze
ng
für den Namen, weil er kurz und süß ist.Oder Sie können das Makro oben in Ihre Vorlage einfügen und als _self importieren (siehe hier) :
Verwenden Sie es dann wie folgt:
Dies gibt aus:
... und ein Follow-up für diejenigen, die MtHaml neben Twig verwenden. MtHaml ermöglicht die normale Verwendung von AngularJS-Locken, da auf jeden Twig-Code zugegriffen wird - und = anstelle von {{}}. Beispielsweise:
Einfaches HTML + AngularJS:
MtHaml + AngularJS:
MtHaml + AngularJS mit Zweig im MtHaml-Stil:
quelle
{{'{{contact.name}\}'}}
das druckte,{{contact.name}}
wie ich wollteWie in einer ähnlichen Frage zu Django und AngularJS erwähnt, kann ein Trick mit dem Ändern von Standardsymbolen (in Twig oder AngularJS) zu Inkompatibilität mit Software von Drittanbietern führen, die diese Symbole verwendet. Der beste Rat, den ich in Google gefunden habe: https://groups.google.com/d/msg/symfony2/kyebufz4M00/8VhF1KWsSAEJ
Tag wurde wörtlich umbenannt
quelle
Sie können auch die Attribut-basierte Direktive verwenden,
<p ng-bind="yourText"></p>
die mit identisch ist<p>{{yourText}}</p>
quelle
<li id={{item.id}}></li>
?<p data-ng-bind="yourText"></p>
, den HTML-Code gültig zu machenSie können verwenden
\{{product.name}}
, um den Ausdruck von Lenker zu ignorieren und stattdessen von Angular zu verwenden.quelle
Dies ist eine kompilierte Version der besten Antworten und ein Beispiel für wörtliche Blöcke:
Verwenden Sie für einzelne Einfügungen:
oder wenn Sie eine Zweigvariable verwenden
Verbatim , ist sehr elegant und für mehrere Winkelvariablen lesbar:
quelle
Wenn Sie nicht daran interessiert sind, die Vorlagen-Tags der vorhandenen Winkel-Syntax zu ändern, was ein verwirrendes Umschreiben Ihrer vorhandenen Winkel-Vorlagen erforderlich machen würde.
Man kann einfach die Zweigschablonen-Tags mit eckigen Tags wie folgt verwenden:
Fand dies in einer anderen ähnlichen Thread- Antwort : Angularjs in einer symfony2-Anwendung
quelle
Alternativ können Sie die von Twig verwendeten Zeichen ändern. Dies wird vom Twig_Lexer gesteuert .
quelle
Laut diesem Beitrag sollten Sie in der Lage sein, dies folgendermaßen zu tun:
quelle
Ich mag @pabloRN, aber ich würde lieber span anstelle von p verwenden, da p für mich dem Ergebnis eine Zeile hinzufügt.
Ich werde dies verwenden:
Ich verwende auch aText mit dem Cursor im doppelten Anführungszeichen, damit ich das Ganze nicht immer wieder neu schreiben muss.
quelle
<span>
wird jedoch für Inline-Text verwendet, wenn Sie andere Inhalte haben. Zum Beispiel:<h1>Welcome <span ng-bind="yourName"></span></h1>
Sie können eine Funktion in Zweig erstellen, um Ihre Winkelanweisungen zu umgeben, also anstatt ...
{{"angular"}}
du gehst ...
{{angular_parser("angular stuff here output curlies around it")}}
quelle