2015-05-12 28 views
0

我已經做了一個Angular指令來扭曲文件上傳輸入。HTML文件輸入Angularjs選擇相同的文件只觸發一個

directive('ngFile', function() { 
    return { 
     link: function (scope, element, attrs) { 
      var button = element.find('button[data-fileInputButton]'); 
      var inputElement = element.find('input[type="file"]');   

      var updateModel = function (evt) { 
       scope.$apply(function() { 
        scope.files = evt.target.files; 
        if (scope.startUpload) { 
         scope.startUpload(); 
        } 

        evtl.target.files = []; 
       }); 
      } 

      inputElement.bind('change', updateModel); 

      button.click(function() { 
       var input = element.find('input[type="file"]'); 
       input.click(); 
      }); 
     } 
    } 
}); 

當我點擊並選擇一個文件,一切正常。但是,當我再次選擇文件時,事件不會被觸發。只有當我選擇另一個文件時纔會觸發它。這是爲什麼發生?

+0

因爲事件被觸發輸入改變時。 –

回答

2

更改正在監聽值而不是文件。

你需要做的:

evt.target.value = ""; 

祝你好運:)

相關問題