2009-12-24 10 views
2

J'ai Apache Velocity. J'ai un code jQuery. Je pense que VM n'aime pas quand je fais des choses comme $img.css("float","left"). Comment désactiver complètement l'analyse de machines virtuelles dans un bloc HTML/Javascript?Modèle Velocity (VM): comment désactiver un bloc de jquery

Merci

+0

pourrait vous corriger la faute de frappe « tenplate/template » dans votre question? Cela rend votre question moins visible. –

+0

en effet, je ne l'ai pas remarqué. Fixe –

Répondre

1

Pour des exemples courts, comme ci-dessus, si ce n'est pas une référence Velocity légitime, faites simplement $ img et Velocity l'ignorera.

Il est tentant d'échapper à la référence, mais c'est extrêmement bizarre. Si $ img est une référence réelle, alors \ $ img affichera $ img. Mais si $ img n'est pas une référence Velocity, alors \ $ img affichera \ $ img. Le meilleur pari, surtout si vous avez un long bloc de texte que vous ne voulez pas analyser, est de le mettre dans un fichier séparé et d'utiliser #include, qui n'analyse pas le texte d'inclusion.

#include ("file.vm")

Cela inclura directement "file.vm" dans la sortie sans l'analyser. (Si vous voulez inclure du texte et analyser ce texte, utilisez #parse).

0

Vous pouvez escape the dollar sign en vitesse par précédant chaque signe $ avec une barre oblique inverse ...

\$img.css("float", "left"); 
+0

Et si cela vous échoue (à cause d'une "référence invalide") ... vous pouvez créer une variable Velocity pour maintenir le signe dollar comme valeur de chaîne, la section suivante dans les docs montre comment et pourquoi ... –

1

En regardant the user guide il ressemble aussi longtemps que vous ne disposez pas d'une variable nommée $img en vitesse, vous ne devriez pas avoir de problème avec l'analyse de la vitesse. Sinon, vous pouvez échapper avec \$img.

En ce qui concerne le fait que l'analyseur ignore réellement la chaîne comme vous le feriez avec une balise CDATA en XML, je ne sais pas comment vous pourriez le faire.

1

L'échappement est peu fiable. A faire:

context.put ("D", "$");

puis

$ {D} img

Dans le prochain 1.7, il y a un nouveau # [[analyseur ignorer complètement]] syntaxe #. Espérons qu'un 1.7-beta1 sera bientôt disponible.

0

Vous pouvez affecter une variable pour analyser le symbole du dollar. Par exemple:

#set($jQ = "$") 

Maintenant, vous pouvez utiliser cette variable pour placer un signe dollar où vous devez:

<script type="text/javascript"> 
$jQ img.css(); 
</script> 

S'il vous plaît assurer qu'il ya un espace entre la variable $ jQ et l'img .css(); (de sorte que la vélocité n'essaie pas d'interpréter le reste comme une variable différente). Vous n'aurez pas à faire cela si une parenthèse suit directement la variable $ jQ.

Ce serait bien:

$jQ('#smithySword'); 
6

Velocity 1.7-beta1 is now out, et il est livré la directive #[[don't parse me!]]#, de sorte que vous ne devez pas échapper à un tas de code dans vos fichiers .VM.

Fonctionne pour moi comme un charme.

-1

Le $ en jquery est un raccourci pour jQuery, par conséquent, vous pouvez remplacer toutes les $ avec jQuery