ExpressionEngine интерпретирует фигурные скобки jQuery как теги EE - PullRequest
1 голос
/ 29 сентября 2011

Я использую EE2.2 вместе с плагином шаблонов jQuery и jQuery.В моем шаблоне у меня есть множество фигурных скобок, которые являются частью работы jQuery Templating.Проблема в том, что EE не делает различий между фигурными скобками JavaScript и тегами EE, которые также входят в фигурные скобки.EE интерпретирует фигурные скобки как теги EE, и по этой причине шаблон не работает.Поскольку эти фигурные скобки находятся внутри тега скрипта, я бы предположил, что EE будет считать их как javascript и не связанные с EE теги.Как я могу сказать EE, что это не теги EE.Есть ли работа вокруг этого.

<script id="template-download" type="text/x-jquery-tmpl">
    <tr class="template-download{{if error}} ui-state-error{{/if}}">
        {{if error}}
            <td></td>
            <td class="name">${name}</td>
            <td class="size">${sizef}</td>
            <td class="error" colspan="2">Error:
                {{if error === 1}}File exceeds upload_max_filesize (php.ini directive)
                {{else error === 2}}File exceeds MAX_FILE_SIZE (HTML form directive)
                {{else}}${error}
                {{/if}}
            </td>
        {{else}}
            <td class="preview">
             .....
</script>

Ответы [ 3 ]

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

Что на самом деле делает скрытый $config['protect_javascript'] ExpressionEngine? Это, вероятно, лучше всего объяснить на примере & mdash; позвольте мне проиллюстрировать.

Учитывая следующий пример кода, с $config['protect_javascript'] = 'y'; расширенные условия будут полностью игнорироваться:

<script>
    {if username == "admin"}
        Welcome, {username}!
    {if:elseif member_id == "2"}
        Welcome, {screen_name}!
    {if:else}
        Welcome, Guest!
    {/if}
</script>

Который будет производить следующий вывод:

<script>
    Welcome, admin!

    Welcome, Administrator!

    Welcome, Guest!
</script>

Принимая во внимание, что когда $config['protect_javascript'] = 'n'; тот же фрагмент кода сверху разрешит оценку расширенных условий и выдаст:

<script>
    Welcome, admin!
</script>

Как видите, разница в том, оцениваются ли расширенные условия в блоках кода JavaScript .

Простые условия и шаблонные теги всегда оцениваются в <script> тегах, независимо от настройки $config['protect_javascript'] & mdash; просто не забудьте поставить фигурные скобки {} на отдельных строках!

<script>
    // Simple Conditionals Are Unaffected and Always Work
    {if segment_2 != ""}
        {redirect="404"}
    {/if}
</script>
1 голос
/ 08 октября 2011

Вы также можете установить тип шаблона "статический" для легкого исправления.Если ваш JS находится в шаблоне с другим кодом EE, вы можете переместить его в «статический» шаблон и внедрить его.

1 голос
/ 29 сентября 2011

Это распространенный вопрос, на который был дан ответ до .Проще говоря:

При вашем использовании второй вариант, вероятно, является лучшим решением.

...