2016-07-12 10 views
0

をNG-ファイルをアップロード?私は連鎖した約束について考えていますが、私は約束と指示をどのように組み合わせることができないのか分かりません。シーケンシャル約束このディレクティブで

This is an example複数のファイルをアップロードすることはできますが、すべて同時に、順番どおりに行う必要はありません。

これは私のコードです:

for (var i = 0; i < files.length; i++) { 
    Upload.upload({ 
     url: config.base+'/upload/', 
     data: { 
      file: files[i], 
     } 
    }).then(function (response) { 
     vm.reloadImatges(); 
     vm.upload.progress=0; 
     vm.upload.files--; 
    }, function (resp) { 

    }, function (evt) { 
     vm.upload.progress = parseInt(100.0 * evt.loaded/evt.total); 
    });       
} 

答えて

0

私は解決策を見つけ、そうでないかもしれない最高の、それは http://jsfiddle.net/erLax2fm/2/

のvarのdoSomething =機能(インデックス){

 var defer = $q.defer(); 

     Upload.upload({ 
      url: url: config.base+'/upload/', 
      data: { 
       file: objects[index] 
      } 
     }).then(function (response) { 
      objects[index].processed = true; 
      if (objects[++index]) { 
       defer.resolve(index); 
      } else { 
       defer.reject(); 
      } 
     }, function (response) { 


     }, function (evt) { 
      vm.upload.progress = parseInt(100.0 * evt.loaded/evt.total); 
     }); 

     defer.promise.then(doSomething); 
    }; 

    doSomething(0); 
の作品