Шаблон Velocity (VM): как отключить блок jquery - PullRequest
2 голосов
/ 24 декабря 2009

У меня есть Apache Velocity. У меня есть немного кода JQuery. Я думаю, что VM не любит, когда я делаю что-то вроде $img.css("float","left"). Как полностью отключить разбор виртуальных машин в блоке HTML / Javascript?

Спасибо

Ответы [ 7 ]

7 голосов
/ 30 июля 2010

Velocity 1.7-beta1 теперь отсутствует и поставляется с директивой #[[don't parse me!]]#, поэтому вам не нужно экранировать кучу кода в ваших файлах .vm.

Работает на меня как шарм.

1 голос
/ 04 января 2010

Нежелательный выход \ ненадежен. Есть:

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

, а затем

$ {D} IMG

В следующей версии 1.7 появился новый синтаксис # [[parser полностью игнорирует это]] #. Надеюсь, скоро выйдет 1.7-бета1.

1 голос
/ 01 января 2010

Для коротких примеров, таких как приведенные выше, если это не допустимая ссылка на Velocity, просто выполните $ img, и Velocity проигнорирует ее.

Соблазнительно избегать ссылки, но это очень странно. Если $ img является реальной ссылкой, то \ $ img отобразит $ img. Но если $ img не является ссылкой на Velocity, то \ $ img отобразит \ $ img.

Лучше всего, особенно если у вас длинный блок текста, который вы не хотите анализировать, - это поместить его в отдельный файл и использовать #include, которое не анализирует включаемый текст.

# включают в себя ( "file.vm")

Это будет включать файл file.vm непосредственно в вывод без его анализа. (Если вы хотите включить текст и разобрать этот текст, используйте #parse).

1 голос
/ 24 декабря 2009

Глядя на руководство пользователя , похоже, что если у вас нет переменной с именем $img по скорости, у вас не должно возникнуть проблем со скоростью ее анализа. В противном случае вы можете сбежать с \$img.

Поскольку фактически парсер пропускает строку, как если бы вы использовали тег CDATA в XML, я не уверен, как вы могли бы это сделать.

0 голосов
/ 18 апреля 2012

$ в jquery является сокращением для jQuery, поэтому вы можете заменить любой $ на jQuery

0 голосов
/ 01 апреля 2010

Вы можете назначить переменную для разбора знака доллара. Например:

#set( $jQ = "$" )

Теперь вы можете использовать эту переменную для размещения знака доллара там, где вам нужно:

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

Пожалуйста, убедитесь, что есть пробел между переменной $ jQ и img.css (); (чтобы скорость не пыталась интерпретировать остальное как другую переменную) , Вам не придется этого делать, если сразу после $ jQ var стоит скобка.

Это было бы хорошо:

$jQ('#smithySword');
0 голосов
/ 24 декабря 2009

Вы можете избежать знака доллара в Скорости, поставив перед каждым знаком $ обратную косую черту ...

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