Есть ли способ избежать экранирования тегов javascript в Apache Wicket? - PullRequest
1 голос
/ 29 ноября 2011

Я пытаюсь использовать KnockoutJS и шаблонизатор jQuery.tmpl по умолчанию, и моя разметка выводится Apache Wicket.

Я обнаружил, что Wicket превращает мой шаблон tmpl javascript из:

<script type="text/x-jquery-tmpl" id="myTemplate">
    Hello, ${world}!
</script>

В это:

<script type="text/x-jquery-tmpl" id="myTemplate">
    /*<![CDATA[*/
    Hello, ${world}!
    /*]]>*/
</script>

Что портит KnockoutJS что-то ужасное.

Есть идеи, если Wicket позволит вам отключить подобные вещи?

1 Ответ

3 голосов
/ 29 ноября 2011

Строка <!--/*--><![CDATA[/*><!--*/\n, которая связывается с KnockoutJS, определена в JavascriptUtils Wicket.Взгляните на метод writeJavascript () .

Необязательно будет добавлять этот префикс / суффикс к каждому вкладу в заголовок, используя HeaderResponse.renderJavascript () или HeaderResponse.renderOnEventJavascript () .

Мне никогда не приходилось изменять это, но это поведение кажется совершенно неизменным, Wicket, похоже, не позволяет вам указать собственный класс HeaderResponse для вашего приложения, чтобы вы могли переопределить использование JavascriptUtils.

Как вы делаете вклад JS?Это динамически генерируется во время создания страницы?Если вы добавили свой javascript с помощью HeaderContributor.renderJavascriptReference () , вы, вероятно, разберетесь с этим, хотя это может не подойти вам.

Не совсем связано, но это обсуждение в списке пользователей Apache Wicket может указывать, что настоящая проблема здесь связана с KnockoutJS.

...