web-dev-qa-db-fra.com

Réinitialisation du formulaire après soumission dans Angularjs

Bonjour, j'ai un formulaire qui met à jour le clic du bouton.

 $scope.action = "Update";
  var id = $routeParams.editId;
  scope.item = updateRecord.get({ id: id });

Une fois que l'élément est mis à jour, les informations saisies dans les champs du formulaire ne sont pas supprimées. Je me demandais ce qui est disponible dans angularjs à ajouter dans le code ci-dessus après avoir été modifié, de sorte qu'il se libère également pour se former. Merci

35
J. Davidson

Vous pouvez réinitialiser un formulaire avec, $scope.formName.$setPristine();, mais si vous liez un objet de modèle à vos entrées, vous devez vous assurer de les effacer également, à savoir:

$scope.currentRecord={};

EDIT

Comme ToodoN-Mike l'a fait remarquer, n'oubliez pas de définir

$scope.formName.$setUntouched()

Le drapeau $touched A été introduit dans angular 1.3.

67
Mohammad Sepahvand

Au bas du corps de votre fonction d'envoi, exécutez ce code ci-dessous.

// Reset the form model.
vm.project = {};
// Set back to pristine.
vm.form.$setPristine();
// Since Angular 1.3, set back to untouched state.
vm.form.$setUntouched();

"vm.form" est le nom de mon formulaire.

Pour plus d'informations, consultez cette page de documentation: https://docs.angularjs.org/api/ng/type/form.FormController

46
Samuel R

Cela a fonctionné pour moi.

viewModel.data = {};
$scope.formName.$setUntouched();
$scope.formName.$setPristine();
9
Pete

1) Pour supprimer les valeurs des champs de formulaire et pour réinitialiser, vous pouvez utiliser $ setPristine ();

$scope.formName.$setPristine();

2) Ensuite, pour définir le formulaire sur Untouched State, utilisez aussi $ setUntouched ();

(Si vous avez des champs obligatoires dans votre formulaire. Champs et aussi si vous utilisez ng-messages alors si vous n'utilisez pas la fonction ci-dessous, ces champs afficheront une erreur.)

$scope.formName.$setUntouched();
3
Ranger

Je ne comprends pas la question, mais vous pouvez peut-être nettoyer la fiche dans le composant HTML:

fonction: ngSubmit (), envoie les données. taskName est le nom du champ, également taskBody.

<form (ngSubmit)="onSubmit(taskName.value, taskBody.value); taskName.value=''; taskBody.value=''" #taskForm="ngForm">
1
ValRob