HTML 5 FileList - jsRender

باستخدام واجهة برمجة التطبيقات الجديدة لـ HTML 5 ، أحاول تمرير الملفات التي يختارها المستخدم إلى قالب (يتم تقديمه باستخدام jsRender). هنا هو HTML:

<!DOCTYPE HTML>
<html>
<head>
  <script src="http://code.jquery.com/jquery.js"></script>
  <script src="http://borismoore.github.com/jsrender/jsrender.js"></script>
  <script>
    $(function() {
      $(':file').change(function() {
        //$('#files-placeholder').html($('#files-template').render({ files: [ { name: 'Test 1' }, { name: 'Test 2' } ] }));
        $('#files-placeholder').html($('#files-template').render({ files: this.files }));
      });
    });
  </script>
</head>
<body>
  <form>
    <input name="files" type="file" multiple="multiple" />
    <script id="files-template" type="text/x-jsrender">
      
    {{for files}}
  • {{>name}}
  • {{/for}}
    </script>
    <div id="files-placeholder"></div>
  </form>
</body>
</html>

ومع ذلك لا يعمل كما هو متوقع. للتظاهر إذا حاولت تقديم القالب مع خط خارج التعليق ثم أنه يعمل بشكل جيد.

سأكون ممتنا لو أن أحدهم يمكن أن يراني ما أفعله خطأ شكر

0
أنا يعرض قائمة مع عنصر واحد. سأقوم بتعديل سؤالي لجعل الأمر أسهل بالنسبة لك لاختباره.
وأضاف المؤلف nfplee, مصدر
jsfiddle.net/4m3YQ - آمل أن يساعد ذلك.
وأضاف المؤلف nfplee, مصدر
هل لديك أي خطأ؟ ماذا تقصد بعدم العمل؟
وأضاف المؤلف Esailija, مصدر
اجعل jsfiddle إن أمكن
وأضاف المؤلف Esailija, مصدر

1 إجابة

يبدو أن محرك templating يعمل على صفائف حقيقية فقط ، وليس FileList s

I fixed it here http://jsfiddle.net/4m3YQ/5/

تحويل إلى مجموعة مثل هذا:

[].slice.call(this.files)
1
وأضاف
شكرا عملت علاج!
وأضاف المؤلف nfplee, مصدر