Сброс загрузки файла после загрузки с помощью ng-file-upload - PullRequest
0 голосов
/ 15 января 2020

Я создаю музыкальное c веб-приложение для покупки / продажи / обмена снаряжения для класса. Я новичок в программировании и все еще изучаю веревки. Я дал пользователям возможность публиковать миниатюры с другими данными об элементах, которые затем публикуются в качестве элементов для продажи на первой странице. Я использую ng-file-upload для достижения этой цели. Но я заметил, что когда мне нужно «поставить» редактировать пост, чтобы изменить данные, и я меняю его миниатюру изображения, изображение проходит, но когда я go редактирую совершенно другой пост, в загрузчике файлов все еще есть изображение из последний положить в него. Я хочу иметь возможность сбросить модель загрузчика файлов на пустую, чтобы ее можно было использовать снова.

Я попытался установить $scope.itemView.thumbnail на null, {}, [] и "", но безрезультатно.

вот мой html

<tr>
    <td><label for="thumbnail">Change thumbnail image: </label><br>
        <input type="file" id="file" ngf-select="" name="file"
               ng-model="picFile" ngf-accept="'image/*'" required /> <br>
        <img ngf-src="picFile" class="img-thumbnail">
</tr>

вот мой JS

    $scope.updateImage = function() {
        var file = document.getElementById('file').files[0];
        var fileReader = new FileReader();

        fileReader.onload = function(e) {
          var data = fileReader.result; 
          if (data !== undefined && data.length > 0) {
              $scope.itemToView.thumbnail = data.split(',')[1];
          } else {
              $scope.itemToView.thumbnail = '';
          }
          $scope.putItem();
          console.log("made it here");
          $scope.picFile = "";
        }

        fileReader.readAsDataURL(file);
    }

    $scope.putItem = function() {
        $scope.jsonObject = angular.toJson($scope.itemToView, false);
        console.log('updated item: ' + $scope.jsonObject);

        $http.put("/MusicApp/API/item", $scope.jsonObject)
        .then(function success(response) {
            $scope.isPutDisabled = true;
            console.log('status: ' + response.status);
            $scope.updateStatus = 'Item Updated.';
        },
         function error(response) {
            console.log('error, return status: ' + response.status);
            $scope.updateStatus = 'update error, '
                    + response.data.message;
        });
    }
})  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...