0

新しい HTML 5 ファイル API を使用して、ユーザーが選択したファイルをテンプレート (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>

ただし、期待どおりには機能しません。デモ用に、コメント アウトされた行を使用してテンプレートをレンダリングすると、正常に動作します。

誰かが私が間違っていることを教えてくれれば幸いです。ありがとう

4

1 に答える 1

1

テンプレート エンジンは、FileListsではなく、実際の配列に対してのみ機能するようです。

ここで修正しましたhttp://jsfiddle.net/4m3YQ/5/

次のように配列に変換します。

[].slice.call(this.files)
于 2012-06-25T12:43:54.933 に答える