JQuery шаблоны - Шаблон HTML-страницы - PullRequest
0 голосов
/ 21 июня 2011

Я пишу инструмент для генерации HTML-страниц с использованием шаблонов jquery, но он не любит определенные теги (DOCTYPE, html, head). Можно ли шаблонировать что-то вроде этого:

<script id="HtmlPageTemplate" type="text/x-jquery-tmpl">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
       <title>${PageTitle}</title>
       <link rel="stylesheet" href="styles/style.css" type="text/css" media="all" />
       <script src="scripts/script.js">{{html "</sc"+"ript>"}}
       <script>
           function MyFunction(){
           }
       {{html "</sc"+"ript>"}}
    </head>
    <body>
        {{tmpl "#PageBody"}}
    </body>
    </html>
</script>

Я использую {{html "</ sc" + "ript>"}}, чтобы закрыть теги скрипта, не закрывая тег скрипта шаблона.

1 Ответ

0 голосов
/ 21 июня 2011

Я думаю, это было бы полезно для вас:

Основная идея - заменить «<» всех чувствительных тегов на какую-то специальную отметку, например, «@ #» и заменить @ # на «<». Используйте $ .template () для компиляции шаблона. Наконец, рендер. </p>

<script id="HtmlPageTemplate" type="text/x-jquery-tmpl">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
       <title>${PageTitle}</title>
       <link rel="stylesheet" href="styles/style.css" type="text/css" media="all" />
       @#script src="scripts/script.js">@#/script>
       @#script>
                alert('here');
       @#/script>
    </head>
    <body>
        {{tmpl "#PageBody"}}
    </body>
    </html>
</script>
<div id="output"></div>

И замените шаблон, используя

$.template('test', $('#HtmlPageTemplate').html().split('@#').join('<'));
$.tmpl('test', data).appendTo($("#output"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...