我需要在使用框架PhalconPHP
的项目中使用http://blueimp.github.io/jQuery-File-Upload/为了做到这一点,我的.volt文件需要包含像这样的javascript代码
<script id="template-upload" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %} //The problem begin here
<tr class="template-upload fade">
<td>
<span class="preview"></span>
........//Some similar code here
</td>
</tr>
{% } %}
</script>
但问题是{%和%}是.volt模板语法。当我像这样使用{% for (var i=0, file; file=o.files[i]; i++) { %}
时,.volt语法和javascript语法是冲突的。浏览器(如Chrome或Firefox)将显示错误:&#34;语法错误,意外令牌(在/ var / www / ....第77行和第34行;其中77是该行以{%
在.phtml中它工作正常,但我不想用.phtml重建我的整个视图模板 如何在.volt中使用此代码? javascript的其他语法是否与{%和%}不同? 谢谢!
答案 0 :(得分:2)
你可以:
"{%", "%}", "{{", "}}"
):<script id="template-upload" type="text/x-tmpl">
{{ '{%' }} for (var i=0, file; file=o.files[i]; i++) { {{ '%}' }}
(3)有点乱,但应该有用。
答案 1 :(得分:2)
@jodator有一个很好的方法。
或者,您可以在Volt模板中使用PHP
<script id="template-upload" type="text/x-tmpl">
<?php foreach (.....) { ?>
<tr class="template-upload fade">
<td>
<span class="preview"></span>
........//Some similar code here
</td>
</tr>
<?php } ?>
</script>
这里唯一的问题是你必须要小心变量的范围,以便PHP可以处理它们。例如,如果o.files
是一个javascript对象,那么你需要将它作为PHP中的变量传递。如果它是PHP对象,那么您只需要将其更改为$o.files
答案 2 :(得分:1)
您可以根据Javascript模板文档更改模板正则表达式:
要为模板语法使用不同的标记,请使用修改后的正则表达式覆盖tmpl.regexp,方法是交换所有出现的“{%”和“%}”,例如“[%”和“%]”:
tmpl.regexp = /([\s'\\])(?!(?:[^[]|\[(?!%))*%\])|(?:\[%(=|#)([\s\S]+?)%\])|(\[%)|(%\])/g;
查看自述文件: https://github.com/blueimp/JavaScript-Templates#template-parsing
答案 3 :(得分:0)
试试jquery文件上传插件的代码:
$$