Возникли проблемы с формой AngularJS для сохранения данных, даже если они недействительны - PullRequest
0 голосов
/ 20 мая 2019

Моя форма работает нормально, за исключением проблемы.

Если я заполняю форму и отправляю ее, она автоматически очищает все поля и отправляет данные на сервер, это хорошо, и это не проблема !!

сначала давайте посмотрим текущий код:

$scope.formModel = {}; 
  $scope.onSubmit = function () {
      $http.post('http://127.0.0.1:8000/api/v1/contact/create/', $scope.formModel)
      .then(function(response) { //if success, below fuction will execute
        $scope.successPost = 'You have successfully submitted your Contact';
        $timeout(function() {
          $scope.successPost = '';
        }, 4000);
        //below $scope will push data in client site if the request is success
        $scope.contacts.push(response.data);
        //if any error occurs, below function will execute
      }, function(response) {
        // below variable will get predefined message that will explain exactly what happened
        var errorData = response.data;
        $scope.errorPost = Object.values(errorData)[0][0];
        $timeout(function(){
          $scope.errorPost = '';
        }, 4000);
      });
      $scope.formModel = {}; //It means, after submit, the form field will clear
      $scope.addContactForm.$setPristine(); 
  };

Вы можете заметить в конце кода, и до $scope.addContactForm.$setPristine() я позвонил $scope.formModel = {}; и я назвал это $scope.formModel = {} coz, это будеточистить заполненные данные после нажатия на кнопку отправить - это круто и нормально работает

, но я хочу сделать так, когда ответ неудачно, как 400 статус, форма не должна очистить, только успешно запрос, форма должнабудьте понятны.

поэтому я хочу реализовать там логическую операцию, если еще как:

, если ответ успешен, он будет вызывать

$scope.formModel = {};
      $scope.addContactForm.$setPristine();

иначе, ничего не делать

У меня проблемы с реализацией, вы можете это сделать?

1 Ответ

1 голос
/ 20 мая 2019

Почему бы вам не поместить эти две строки, которые очищают вашу форму, в обратный вызов 'then'? Он очистит форму только после успешного ответа. Вы пробовали это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...