Угловое создаст экземпляры FormController
только для названных форм, так как имя формы u sed как свойство, представляющее экземпляр FormController для этой конкретной формы в вашей области. Без какого-либо имени он не сможет связать экземпляр FormController с любым именем свойства в области.
Например, учитывая следующую разметку
<div ng-controller="MyController">
<form name="myForm" id="myForm" ng-submit="handleSubmit()">
/* Some Markup */
</form>
</div>
В вашем MyController, $scope
имеет свойство myForm
, представляющий экземпляр FormController
, и вы можете вызывать методы или свойства доступа, как показано ниже.
$scope.myForm.$valid
$scope.myForm.$setPristine();
$scope.myForm.$setUntouched();
Вызов setPristine()
и setUntouched()
изменится только форма государства от dirty
до pristine
и untouched
, как видно из классов, добавленных в форму, но не обнуляют поля формы. Нет открытого метода, выставленного на FormController
для сброса полей формы и соответствующих значений модели, но вы можете достичь этого просто с небольшим изменением способа привязки значений с помощью ng-model
. Использование точки (.) В ваших моделях является хорошей практикой, так как позволяет захватить все состояние формы в одном объекте, а также не позволит вам создавать теневые свойства.
В вашем HTML,
<input type="text" id="fullName" name="fullname" ng-model="data.fullName"/>
<input type="email" id="email" name="email" ng-model="data.email" />
В контроллере,
angular.module('MyApp', [])
.controller('MyController', function($scope) {
$scope.data = {
fullName : '',
email : ''
};
$scope.resetForm = function(){
/* reset the data to a new object so that all the properties
* of form are reset
*/
$scope.data = {};
};
});
Вот пример Pen в действии. Надеюсь, это поможет :)
Вы видите какую-либо проблему при добавлении 'name' в вашу форму? Угловое будет создавать экземпляры FormController только для именованных форм, поскольку имя формы используется как свойство, представляющее экземпляр FormController для этой конкретной формы в вашей области. Без какого-либо имени он не сможет связать экземпляр FormController с любым именем свойства в области. – Arkantos
А, спасибо, я вижу @Arkantos – OneMoreQuestion