Моя форма работает нормально, за исключением проблемы.
Если я заполняю форму и отправляю ее, она автоматически очищает все поля и отправляет данные на сервер, это хорошо, и это не проблема !!
сначала давайте посмотрим текущий код:
$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();
иначе, ничего не делать
У меня проблемы с реализацией, вы можете это сделать?