2017-01-24 5 views
0

Позвольте мне перефразировать мой вопрос, у меня есть проблема с удалением загруженных файлов, поэтому я внесла некоторые изменения в свой код, как было предложено, но он по-прежнему не работает, тем более проблема перезапись моих загруженных файлов, так что каждый раз, когда я загрузить что-то это будет просто переписать предыдущий файл, и я хочу, чтобы иметь возможность загружать много и удалять их, благодаряОчистить поле ввода с помощью angularjs

<form class="htmlForm"> 
    <label for="id_payment_proof">{% trans "Payment proof:" %}</label> 
    <div class="full-size"> 
    <div class="input-control full-size file" data-role="input"> 
     <input id="id_payment_proof" type="file" file-model="payment_proof"/> 
     <button class="button"><span class="mif-folder"></span></button> 
    </div> 
    </div> 
    <div ng-if="client_invoice.payment_proof_filename"> 
    <a ng-href="{{ client_invoice.payment_proof }}" 
    ng-bind="client_invoice.payment_proof_filename" 
    target="_blank"></a> 
    <button class="button" ng_click="clearInvoice()"> 
     <span class="mif-bin"></span> 
    </button> 
    </div> 
    {% endverbatim %} 
</form> 

контроллер:

editInvoiceHandler = (event, row) -> 
$scope.payment_proof = undefined 
$scope.htmlFormEl.reset() 
$scope.row = row 
$scope.client_invoice = row.data() 
hasChanges = false 
$scope.editMode = true 
$scope.$digest() 

$scope.clearInvoice() =() -> 
$scope.payment_proof = 0 

ответ

1

Я не проверял код, приведенный ниже, но думаю, что это может быть похоже на то, что вам нужно:

$scope.payment_proof = []; // presume you don't want any pre-loaded entries 
$scope.add(new_entry) = payment_proof.push(new_entry); 
$scope.delete(index) = payment_proof.splice(index,1); 
$scope.clearInvoice = { $scope.payment_proof = []; } 
//Then submit the payment_proof to the back end 

Идея заключается в том, чтобы манипулировать массив (payment_proof в вашем случае) и отправьте его на задний план.

+0

ждите, что нужно перейти в 'clearInvoice'? – PetarP

+0

@PetarP 'clearInvoice' - это функция для удаления всех элементов в' payment_proof'? –

+0

должно быть, но оно не работает – PetarP

0

в вашем контроллер:

$scope.deleteUploadedFile = function() { 
    $scope.payment_proof = null 
} 
0

попробовать это

<button class="button" ng-click="payment_proof = ''"> Delete</button> 
+0

нет, это не работает – PetarP