2

ApacheVelocityを持っています。jQueryコードがあります。のようなことをするとき、VMは気に入らないと思います$img.css("float","left")。HTML / Javascriptのブロック内でVM解析を完全に無効にするにはどうすればよいですか?

ありがとう

4

7 に答える 7

8

Velocity 1.7- beta1 がリリースされ、ディレクティブが同梱#[[don't parse me!]]#されているため、.vm ファイル内の一連のコードをエスケープする必要はありません。

魅力のように私のために働きます。

于 2010-07-30T14:22:27.030 に答える
1

\ エスケープは信頼できません。行う:

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

その後

${D}画像

次の 1.7 では、新しい #[[ パーサーはこれを完全に無視する ]]# 構文があります。うまくいけば、1.7-beta1 がすぐに出てくるでしょう。

于 2010-01-04T16:52:57.937 に答える
1

ユーザーガイドを見ると、速度で名前が付けられた変数がない限り、$img速度の解析に問題はないはずです。それ以外の場合は、でエスケープできます\$img

XML の CDATA タグを使用する場合と同じように、実際にパーサーが文字列をスキップするようにする限り、どうすればそれができるかわかりません。

于 2009-12-24T01:54:53.757 に答える
1

上記のような短い例では、それが正当な Velocity 参照でない場合、$img を実行するだけで、Velocity はそれを無視します。

参照を回避したくなるのですが、これは非常に風変わりです。$img が実際の参照である場合、\$img は $img を表示します。しかし、$img が Velocity リファレンスでない場合、\$img は \$img を表示します。

特に解析したくないテキストの長いブロックがある場合は、それを別のファイルに入れ、インクルード テキストを解析しない #include を使用することをお勧めします。

#include("file.vm")

これにより、解析せずに「file.vm」が出力に直接含まれます。(テキストを含めてそのテキストを解析する場合は、#parse を使用します)。

于 2010-01-01T06:39:25.060 に答える
0

ドル記号を解析するための変数を割り当てることができます。例えば:

#set( $jQ = "$" )

これで、この変数を使用して、必要な場所にドル記号を配置できます。

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

$ jQ変数とimg.css()の間にスペースがあることを確認してください。(速度が残りを別の変数として解釈しようとしないように)。$ jQ varの直後に括弧が続く場合は、これを行う必要はありません。

これは問題ありません:

$jQ('#smithySword');
于 2010-04-01T00:26:20.400 に答える
0

各 $ 記号の前にバックスラッシュを付けることで、Velocityのドル記号をエスケープできます...

\$img.css("float", "left");
于 2009-12-24T01:51:31.953 に答える
-1

$in jquery は の省略形であるため、 anyを にjQuery置き換えることができます$jQuery

于 2012-04-18T13:31:43.833 に答える