2014-10-02 138 views
0

我想做一個簡單的項目與多個文件上傳。我創建了UploadHandler.php來處理上傳。然後在視圖中包含下面的腳本和html。我正在使用樹枝模板和苗條的框架。我是新手,我有一些語法問題。html內部js衝突標籤與樹枝模板

<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」中。任何人都可以幫助我?

+0

您完全混合了樹枝和PHP語法。再次閱讀枝條的文檔。 – Maerlyn 2014-10-03 19:48:55

回答

2

你舉的例子完全正確的。問題是,使用js模板語言和問題在twig格式和text/x-tmpl之間存在衝突。

我會建議在一個單獨的.js文件中移動text/x-tmpl塊,並將它包含在一個樹枝中作爲參考。

更多細節,我發現這裏 What is x-tmpl?

UPDATE: 配有獨立的.js文件沒有工作的解決方案。但還有另一種解決方案 - 使用包含標籤的腳本製作一個單獨的html文件(uploadables-js.html)。 在.twig文件中插入鏈接到這個新文件,就像這樣{{source('uploadables-js.html')}}。重要提示:包含或使用不起作用