SlingShot uploader
複数のファイルのアップロードを処理するために、アップロードごとに 1 つのインスタンスを作成します。
もう少し詳しく言うと:
_.each
を使用して、ループでアップロードごとに 1 つのテンプレートをレンダリングしますBlaze.renderWithData(Template.uploadItem, file, targetNode);
。以下のループを参照してください。
'change .fileBrowse':function(event, template){
_.each(event.currentTarget.files, function(file){
//...
_.each
以前にループで満たされたローカル コレクションで、各アップロード状態 (進行状況を除く) の状態を追跡します。テンプレートインスタンスオブジェクトにアタッチすることにより
SlingShot uploader
、関数でインスタンス化します(つまり)Template.uploadItem.created
this.uploader = new Slingshot.Upload( ...
このヘルパーコード
Template.instance().uploader
に示されているように使用して到達しますprogress
progress: function () { return Math.round(Template.instance().uploader.progress() * 100); }
問題: アップローダのコールバックは、最後のファイルが投稿されたときに 1 回だけ呼び出されます。他のすべては正常に動作しますが、コールバックが実行されたときのように、ローカル コレクションで状態が更新されないため、UI を更新できません。