使用新的HTML5FileAPI,我尝试将用户选择的文件传递给一个模板(用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">
<ul>
{{for files}}
<li>{{>name}}</li>
{{/for}}
</ul>
</script>
<div id="files-placeholder"></div>
</form>
</body>
</html>然而,它并没有像预期的那样工作。作为演示,如果您尝试使用注释掉的行呈现模板,那么它可以很好地工作。
如果有人能告诉我我做错了什么,我将不胜感激。谢谢
发布于 2012-06-25 20:43:55
模板引擎似乎只适用于实数组,而不适用于FileList的
我在这里修好了,http://jsfiddle.net/4m3YQ/5/
如下所示转换为数组:
[].slice.call(this.files)https://stackoverflow.com/questions/11188989
复制相似问题