Comme vous le savez, à la fois angulaire et brindille a une construction de contrôle commune - double croisillons. Comment puis-je changer la valeur par défaut d'Angular?
Je sais que je peux le faire dans Twig, mais dans certains projets, je ne peux pas, seulement JS.
verbatim
balise; par exemple:{% verbatim %}{{ angular_var }}{% endverbatim %}
pour conserver vos moustaches pour AngularJS: twig.sensiolabs.org/doc/tags/verbatim.htmlRéponses:
Vous pouvez modifier les balises d'interpolation de début et de fin à l'aide du
interpolateProvider
service. Un endroit pratique pour cela est au moment de l'initialisation du module.https://docs.angularjs.org/api/ng/provider/$interpolateProvider
la source
[[myObject[myArray[index]]
{[{}]}
avec Django bien qu'il soit un peu bizarre à taper. J'ai mis à jour la réponse.Cette question semble avoir trouvé une réponse, mais une solution plus élégante qui n'a pas été mentionnée consiste simplement à placer les accolades entre guillemets entre les accolades, comme ceci:
Si vous utilisez une variable pour le contenu, faites-le à la place:
Vous devez utiliser des guillemets simples , pas des guillemets doubles. Les guillemets doubles permettent l'interpolation de chaînes par Twig, vous devez donc être plus prudent avec le contenu, surtout si vous utilisez des expressions.
Si vous détestez toujours voir tous ces accolades, vous pouvez également créer une macro simple pour automatiser le processus:
Enregistrez-le en tant que fichier et importez-le dans votre modèle. J'utilise
ng
le nom car il est court et doux.Ou vous pouvez mettre la macro en haut de votre modèle et l'importer en tant que _self (voir ici) :
Ensuite, utilisez-le comme suit:
Cela produit:
... et un suivi pour ceux qui utilisent MtHaml aux côtés de Twig. MtHaml permet d'utiliser les boucles AngularJS de la manière normale car tout code Twig est accessible via - et = au lieu de {{}}. Par exemple:
HTML simple + AngularJS:
MtHaml + AngularJS:
MtHaml + AngularJS avec brindille de style MtHaml:
la source
{{'{{contact.name}\}'}}
qui s'imprime{{contact.name}}
comme je le voulaisComme mentionné dans une question similaire sur Django et AngularJS, une astuce avec la modification des symboles par défaut (dans Twig ou AngularJS) peut entraîner une incompatibilité avec un logiciel tiers, qui utilisera ces symboles. Donc, le meilleur conseil que j'ai trouvé dans google: https://groups.google.com/d/msg/symfony2/kyebufz4M00/8VhF1KWsSAEJ
La balise a été renommée textuellement
source
Vous pouvez également utiliser la directive basée sur les attributs
<p ng-bind="yourText"></p>
est la même que<p>{{yourText}}</p>
source
<li id={{item.id}}></li>
?<p data-ng-bind="yourText"></p>
pour rendre le HTML valideVous pouvez utiliser
\{{product.name}}
pour obtenir l'expression ignorée par les guidons et utilisée à la place par Angular.source
Ceci est une version compilée des meilleures réponses et un exemple pour les blocs textuels:
Pour les insertions simples, utilisez:
ou si vous utilisez une variable twig
Verbatim , est très élégant et lisible pour plusieurs variables angulaires:
source
Si vous n'êtes pas intéressé à modifier les balises de modèle de la syntaxe angulaire existante, ce qui nécessiterait une réécriture confuse de vos modèles angulaires existants.
On peut simplement utiliser les balises de modèle de brindille avec des balises angulaires comme ceci:
Trouvé ceci sur une autre réponse de thread similaire : Angularjs sur une application symfony2
la source
Alternativement, vous pouvez modifier les caractères utilisés par Twig. Ceci est contrôlé par Twig_Lexer .
la source
Selon ce post, vous devriez pouvoir le faire comme ceci:
la source
J'aime @pabloRN, mais je préférerais utiliser span au lieu de p, car pour moi p ajoutera une ligne au résultat.
Je vais utiliser ceci:
J'utilise également aText avec le curseur à l'intérieur des guillemets doubles, je n'ai donc pas à réécrire le tout encore et encore.
la source
<span>
est utilisée pour le texte en ligne lorsque vous avez d'autres contenus. Par exemple:<h1>Welcome <span ng-bind="yourName"></span></h1>
Vous pouvez créer une fonction en brindille pour entourer vos directives angulaires, donc comme au lieu d'aller ...
{{"angular"}}
tu vas ...
{{angular_parser("angular stuff here output curlies around it")}}
la source