Я понял, что $ setPristine должен это делать, но это не в моем проекте. Это моя форма:
form(name="new_project", ng-submit="create_project()")
div.create_wrapper
input#project_name(required, ng-model="project.name", type="text")
select#project_language(required, ng-init="project.language='PHP'", ng-model="project.language", ng-options="language for language in languages")
input.button.tiny.radius(type="submit", value="Create")
И js:
$scope.create_project = () ->
project = new projectFactory this.project
project.$save project, (form_data) ->
$scope.projects.push form_data
$scope.new_project.$setPristine()
Ошибок нет, и для pristine установлено значение true, но входное значение остается.
2 ответа
Я оставлю это здесь, так как этот другой вопрос плохо назван для поиска решения этой проблемы.
Вам необходимо вручную очистить значения элементов формы.
Например, если у вас есть:
input#project_name(ng-model="project.name", type="text")
Чтобы очистить его, вы можете сделать:
$scope.project = null
В вашем контроллере.
Вы можете использовать свой собственный метод, но с некоторыми улучшениями. Например, это ваша модель в контроллере:
$scope.registrationForm = {
'firstName' : '',
'lastName' : ''
};
Ваш HTML:
<form class="form-horizontal" name="registrForm" role="form">
<input type="text" class="form-control"
name="firstName"
id="firstName"
ng-model="registrationForm.firstName"
placeholder="First name"
required> First name
<input type="text" class="form-control"
name="lastName"
id="lastName"
ng-model="registrationForm.lastName"
placeholder="Last name"
required> Last name
</form
Затем вы должны клонировать / сохранить ваше чистое состояние:
$scope.originForm = angular.copy($scope.registrationForm);
Ваша функция сброса будет:
$scope.resetForm = function(){
$scope.registrationForm = angular.copy($scope.originForm); // Assign clear state to modified form
$scope.registrForm.$setPristine(); // this line will update status of your form, but will not clean your data, where `registrForm` - name of form.
};
Таким образом, вы можете очистить всю свою форму
Похожие вопросы
Связанные вопросы
Новые вопросы
angularjs
Используйте для вопросов об AngularJS (1.x), JavaScript-фреймворке с открытым исходным кодом. НЕ используйте этот тег для Angular 2 или более поздних версий; вместо этого используйте тег [angular].