【问题标题】:html inside js conflict tags with twig templatejs中的html与树枝模板冲突标签
【发布时间】:2014-11-27 04:02:57
【问题描述】:

我正在尝试制作一个包含多个文件上传的简单项目。我创建了 UploadHandler.php 来处理上传。然后在视图中包含脚本和 html,如下所示。我正在使用树枝模板和苗条的框架。我是新手,遇到一些语法问题。

<script id="template-upload" type="text/x-tmpl">
    {% for (var i=0, file; file=o.files[i]; i++) { %}
    <tr class="template-upload fade">
        <td>
            <span class="preview"></span>
        </td>
        <td>
            <p class="name">{%=file.name%}</p>
            <strong class="error text-danger"></strong>
        </td>
        <td>
            <p class="size">Processing...</p>
            <div class="progress progress-striped active" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div class="progress-bar progress-bar-success" style="width:0%;"></div></div>
        </td>
        <td>
            {% if (!i && !o.options.autoUpload) { %}
                <button class="btn btn-primary start" disabled>
                    <i class="glyphicon glyphicon-upload"></i>
                    <span>Start</span>
                </button>
            {% } %}
            {% if (!i) { %}
                <button class="btn btn-warning cancel">
                    <i class="glyphicon glyphicon-ban-circle"></i>
                    <span>Cancel</span>
                </button>
            {% } %}
        </td>
    </tr>
{% } %}
</script>
<!-- The template to display files available for download -->
<script id="template-download" type="text/x-tmpl">
    {% for (var i=0, file; file=o.files[i]; i++) { %}
    <tr class="template-download fade">
        <td>
            <span class="preview">
                {% if (file.thumbnailUrl) { %}
                    <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
                {% } %}
            </span>
        </td>
        <td>
            <p class="name">
                {% if (file.url) { %}
                    <a href="{%=file.url%}" title="{%=file.name%}" download="{%=file.name%}" {%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
                {% } else { %}
                    <span>{%=file.name%}</span>
                {% } %}
            </p>
            {% if (file.error) { %}
                <div><span class="label label-danger">Error</span> {%=file.error%}</div>
            {% } %}
        </td>
        <td>
            <span class="size">{%=o.formatFileSize(file.size)%}</span>
        </td>
        <td>
            {% if (file.deleteUrl) { %}
                <button class="btn btn-danger delete" data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
                    <i class="glyphicon glyphicon-trash"></i>
                    <span>Delete</span>
                </button>
                <input type="checkbox" name="delete" value="1" class="toggle">
            {% } else { %}
                <button class="btn btn-warning cancel">
                    <i class="glyphicon glyphicon-ban-circle"></i>
                    <span>Cancel</span>
                </button>
            {% } %}
        </td>
    </tr>
{% } %}
{% endblock %}

问题:

消息:意外字符“;”在第 67 行的“uploads/list.twig”中 这是第二行。谁能帮帮我?

【问题讨论】:

  • 你完全混合了 twig 和 php 语法。再次阅读 twig 的文档。

标签: javascript html twig slim


【解决方案1】:

你的例子绝对正确。问题是使用了js模板语言,问题在于twig格式和text/x-tmpl之间的冲突。

我建议将 text/x-tmpl 块移动到单独的 .js 文件中,并将其包含在树枝中作为参考。

我在这里找到了更多细节 What is x-tmpl?

更新: 使用单独的 .js 文件的解决方案不起作用。但是还有另一种解决方案 - 使用这些脚本(包括标签)制作一个单独的 html 文件(uploadables-js.html)。 在 .twig 文件中插入指向这个新文件的链接,例如 {{ source('uploadables-js.html') }}。重要提示:包含或使用将不起作用

【讨论】:

    【解决方案2】:

    您的for 声明是错误的。

    尝试用这个替换你的for

    {% for file in files %}
    

    此处的文档:http://twig.sensiolabs.org/doc/tags/for.html

    【讨论】:

      猜你喜欢
      • 2011-04-30
      • 2013-08-07
      • 2020-04-02
      • 2012-01-08
      • 2018-08-10
      • 2012-07-27
      相关资源
      最近更新 更多