0

SlingShot uploader複数のファイルのアップロードを処理するために、アップロードごとに 1 つのインスタンスを作成します。

もう少し詳しく言うと:

  1. _.eachを使用して、ループでアップロードごとに 1 つのテンプレートをレンダリングしますBlaze.renderWithData(Template.uploadItem, file, targetNode);。以下のループを参照してください。

'change .fileBrowse':function(event, template){ _.each(event.currentTarget.files, function(file){ //...

  1. _.each 以前にループで満たされたローカル コレクションで、各アップロード状態 (進行状況を除く) の状態を追跡します。

  2. テンプレートインスタンスオブジェクトにアタッチすることによりSlingShot uploader、関数でインスタンス化します(つまり)Template.uploadItem.createdthis.uploader = new Slingshot.Upload( ...

  3. このヘルパーコードTemplate.instance().uploaderに示されているように使用して到達しますprogress

    progress: function () { return Math.round(Template.instance().uploader.progress() * 100); }

問題: アップローダのコールバックは、最後のファイルが投稿されたときに 1 回だけ呼び出されます。他のすべては正常に動作しますが、コールバックが実行されたときのように、ローカル コレクションで状態が更新されないため、UI を更新できません。

4

1 に答える 1

0

OK、問題は解決しました。ばかげたエラーでした。パブリック変数を使用してファイル名を保存したため、あるテンプレートから別のテンプレートに盗まれました。

于 2015-07-15T12:26:29.893 に答える