2012-06-25 4 views
0

새로운 HTML 5 File API를 사용하여 사용자가 선택한 파일을 템플릿 (jsRender로 렌더링 됨)에 전달하려고합니다. 다음은 HTML입니다.HTML 5 FileList - jsRender

<!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"> 
     <ul> 
     {{for files}} 
      <li>{{>name}}</li> 
     {{/for}} 
     </ul> 
    </script> 
    <div id="files-placeholder"></div> 
    </form> 
</body> 
</html> 

그러나 예상대로 작동하지 않습니다. 주석 처리 된 줄이있는 템플릿을 렌더링하면 데모 용으로 잘 작동합니다.

누군가 내가 잘못하고있는 것을 보여줄 수 있으면 감사히 생각합니다.

[].slice.call(this.files) 
+0

당신이 오류를받을 수 있나요 : – Esailija

+0

I는 하나의 항목으로 목록을 렌더링합니다. 제 질문을 편집하여보다 쉽게 ​​테스트 할 수 있도록하겠습니다. – nfplee

+0

가능한 경우 [jsfiddle] (http://jsfiddle.net/)을 만드십시오. – Esailija

답변

1

감사

는 템플릿 엔진은 실제 배열 만, 내가 여기 고정되지 FileList

http://jsfiddle.net/4m3YQ/5/

이 같은 배열로 변환 작동하는 것 같은데? 일하지 않는다면 무슨 뜻입니까?

+0

감사합니다 대우를 일했습니다! – nfplee