2012-02-11 3 views
1

J'écris actuellement Javascript dans un fichier mako, et sur une ligne, je dois vérifier si deux chaînes sont égales. La chaîne que je vérifie a "<% text" à l'intérieur, donc j'ai l'habitude d'obtenir une erreur en disant qu'il n'y a pas de balise nommée text. J'ai échappé à cela en ajoutant un second% pour obtenir "< %% text". Mais maintenant, je reçois l'erreur suivante.Erreur dans Mako: "expected%>", échappement%

SyntaxException: Expected: %> in file file.mako 

Quel est le problème?

+1

peut vous mettre en place une version simplifiée du modèle qui a un contenu juste assez pour créer le problème? – BenTrofatter

Répondre

0

"<%" et "%>" sont des symboles réservés dans Mako. Si elles apparaissent dans votre modèle, Mako supposera que vous voulez échapper à un bloc de code python. Voici un exemple de ce que je veux dire:

""" 
<% 
    some_var = 'foo' 
    other_var = '{0} bar'.format(some_var) 
%> 
""" 

Jetez un oeil à http://docs.makotemplates.org/en/latest/syntax.html#python-blocks pour plus de détails

Excuse les citations, « <% » et « %> » sont également des symboles réservés dans le débordement de pile WYSIWYG éditeur. Si les variables Javascript que vous comparez contiennent des symboles réservés, vous devrez trouver un autre moyen de les comparer. Peut-être que vous pourriez utiliser l'entité unicode pour le signe pour cent:

Par exemple:

if ('<%' == '<\u0025') { 
    alert('success!'); 
}