Expressionengine将jQuery花括号解释为EE标记
我正在使用EE2.2以及jQuery和jQuery模板插件。在我的模板中,我分配了花括号,这是jQuery模板工作方式的一部分。问题在于EE并没有区分JavaScript大括号和EE标记,后者也有大括号。EE将花括号解释为EE标记,因此模板无法工作。由于这些花括号位于脚本标记内,我假设EE将它们视为javascript和非EE标记相关。我如何告诉EE这些不是EE标签。这有什么办法吗Expressionengine将jQuery花括号解释为EE标记,jquery,tags,expressionengine,curly-braces,Jquery,Tags,Expressionengine,Curly Braces,我正在使用EE2.2以及jQuery和jQuery模板插件。在我的模板中,我分配了花括号,这是jQuery模板工作方式的一部分。问题在于EE并没有区分JavaScript大括号和EE标记,后者也有大括号。EE将花括号解释为EE标记,因此模板无法工作。由于这些花括号位于脚本标记内,我假设EE将它们视为javascript和非EE标记相关。我如何告诉EE这些不是EE标签。这有什么办法吗 <script id="template-download" type="text/x-jquery-tmp
<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>
{{if error}}
${name}
${sizef}
错误:
{{if error==1}}}文件超过了upload\u max\u filesize(php.ini指令)
{{else error==2}}文件超过了最大文件大小(HTML表单指令)
{{else}}${error}
{{/if}
{{else}
.....
这是一个普遍存在的问题。简言之:
- 将JavaScript的大括号
放在单独的行上,或者{}
- 执行
$config['protect\u javascript']
根据您的使用情况,第二个选项可能是最好的解决方案。这是一个常见的问题。简言之:
- 将JavaScript的大括号
放在单独的行上,或者{}
- 执行
$config['protect\u javascript']
根据您的使用情况,第二个选项可能是最好的解决方案。ExpressionEngine的隐藏
$config['protect\u javascript']
实际上做了什么?最好用一个例子来解释——请允许我举例说明
给出以下代码示例,其中$config['protect_javascript']='y'代码>高级条件将被完全忽略:
<script>
{if username == "admin"}
Welcome, {username}!
{if:elseif member_id == "2"}
Welcome, {screen_name}!
{if:else}
Welcome, Guest!
{/if}
</script>
如您所见,区别在于高级条件是否在JavaScript代码块中计算
和总是在
标记中计算,而不管$config['protect_javascript']
设置如何-只需确保将花括号{}
放在单独的行中
<script>
// Simple Conditionals Are Unaffected and Always Work
{if segment_2 != ""}
{redirect="404"}
{/if}
</script>
//简单条件句不受影响且始终有效
{如果段_2!=“”}
{redirect=“404”}
{/if}
ExpressionEngine的隐藏$config['protect\u javascript']
实际上做了什么?最好用一个例子来解释——请允许我举例说明
给出以下代码示例,其中$config['protect_javascript']='y'代码>高级条件将被完全忽略:
<script>
{if username == "admin"}
Welcome, {username}!
{if:elseif member_id == "2"}
Welcome, {screen_name}!
{if:else}
Welcome, Guest!
{/if}
</script>
如您所见,区别在于高级条件是否在JavaScript代码块中计算
和总是在
标记中计算,而不管$config['protect_javascript']
设置如何-只需确保将花括号{}
放在单独的行中
<script>
// Simple Conditionals Are Unaffected and Always Work
{if segment_2 != ""}
{redirect="404"}
{/if}
</script>
//简单条件句不受影响且始终有效
{如果段_2!=“”}
{redirect=“404”}
{/if}
您还可以将模板类型设置为“静态”,以便轻松修复。如果您的JS与其他EE代码在一个模板中,您可以将其移动到一个“静态”模板并将其嵌入。您还可以将模板类型设置为“静态”,以便轻松修复。如果您的JS与其他EE代码在一个模板中,您可以将其移动到一个“静态”模板中并嵌入它。谢谢。我将protect_javascript设置为y,它可以工作。将protect_javascript设置为n的初衷是什么,因为您经常希望在javascript中使用EE变量代码>,它阻止ExpressionEngine解析器在
标记中进行处理。也就是说,ExpressionEngine不会查找逻辑运算符(或、和)或比较运算符(=),因为EE的默认值有时是向后的。例如:“自动将URL和电子邮件地址转换为链接?”大多数默认设置都非常可靠,但也有一些奇怪的设置。谢谢。我将protect_javascript设置为y,它就工作了。将protect_javascript设置为n的目的是什么,因为您通常希望在javascript中使用EE变量。当$config['protect_javascript']=y;
,它阻止ExpressionEngine解析器在
标记中处理。这意味着,ExpressionEngine不会查找逻辑运算符(或、和)或比较运算符(=),因为EE的默认值有时是向后的。例如:“自动将URL和电子邮件地址转换为链接?”大多数默认设置都非常可靠,但也有一些奇怪的设置。