2

我有阿帕奇速度。我有一些 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

查看用户指南,只要您没有以$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 回答
1

\ 转义是不可靠的。做:

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

进而

${D}img

在即将到来的 1.7 中,有一个新的 #[[ 解析器将完全忽略这个 ]]# 语法。希望 1.7-beta1 很快就会出来。

于 2010-01-04T16:52:57.937 回答
0

您可以在 Velocity 中通过在每个 $ 符号前加上反斜杠来转义美元符号...

\$img.css("float", "left");
于 2009-12-24T01:51:31.953 回答
0

您可以分配一个变量来解析美元符号。例如:

#set( $jQ = "$" )

现在你可以使用这个变量在你需要的地方放置一个美元符号:

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

请确保$jQ变量和img.css()之间有空格;(因此速度不会试图将其余部分解释为不同的变量)。如果括号直接跟在 $jQ 变量之后,则不必这样做。

这会很好:

$jQ('#smithySword');
于 2010-04-01T00:26:20.400 回答
-1

$in jquery 是 的简写,jQuery因此您可以将任何替换$jQuery

于 2012-04-18T13:31:43.833 回答