2014-10-03 29 views
1

我是新角度,我正在實施ng-file-upload directive。上傳成功後,有人能告訴我如何清除文件輸入嗎?如何用ng-file-upload指令清除輸入文件?

我已經嘗試了一些解決方案在線,並且是唯一一個我已經成功地使它的排序工作是用jQuery:input.replaceWith(input.val('').clone(true));

不過,這似乎只是通過外觀來清除它,我如果我嘗試再次提交,仍然可以上傳所要清除的文件。

如果有人能幫助我,這將是偉大的。

回答

1

這很簡單,只要做到這一點。

var uploadInstance = $upload.upload({ 
    url: 'resources/upload', 
    file: $files // for multiple files 
}) 
progress(function (evt) { 
    //progress 
}) 
.success(function (data) { 
    //Success upload 
}) 
.error(function (data) { 
    //Error upload  
}); 

,當你想uploadInstance被重置,只需撥打

uploadInstance.abort(); 
0

這是爲我工作,但它不是理想的解決方案:

HTML:

<form name="photosForm" ng-submit="upload(photos.file)"> 
    <input type="file" 
     name="file" 
     ngf-select 
     ng-class="{'invalid': photosForm.file.$invalid}" 
     ng-model="photos.file" 
     required/> 
    <button type="submit" ng-disabled="photosForm.$invalid"></button> 
</form> 

JS:

$scope.upload = function(file) { 
    Upload(file).then(function() { 
    $scope.photos = { file: undefined }; 
    }, function(err) { 
    $scope.errGallery = err.data.message; 
    }); 
} 

CSS:

.invalid { 
    color: red; 
    border-color: red; 
} 

現在是什麼這樣做對我來說。它將文件的名稱留在文件輸入中,但它不再是有效的文件,因爲沒有文件,它被設置爲'undefined'。這是好的,因爲提交按鈕將被禁用,並且你不能錯誤地上傳兩次相同的文件,並且'無效的'css類將被應用,因爲需要輸入,但是沒有文件設置,並且它會將我的顏色輸入邊框和文字爲紅色。