2013-04-20 5 views
6

У меня возникли проблемы с возвратом полей формы после отправки в AngularJS (v1.1.3). Вот отрывок из того, что я пытаюсь сделать:Сбросить форму после отправки в AngularJS

HTML

<form name="addMemberForm"> 
    <input name="name" type="text" placeholder="Jon Doe" ng-model="member.name" required/></td> 
    <a class="btn btn-primary" ng-click="createMember(member)" ng-disabled="addMemberForm.$invalid"><i class="icon-plus"></i></a> 
</form> 

JS

$scope.createMember = function(member) { 
    var membersService = new Members(member); 
    membersService.$create(function(member) { 
     $scope.members.push(member); 
     $scope.addMemberForm.reset(); //TypeError: Object #<FormController> has no method 'reset' 
    }); 
}; 

Есть еще один способ сбросить элементы формы?

+1

установить область уаг member.name нулевое значение или пустую строку (member.name = "") – tschiela

+0

Hm это не работает. Я пытаюсь сбросить все элементы ввода в форме, а не данные в области. – jesal

+0

, но для сброса области действия это общий способ. Или представление не синхронизируется с моделью. – tschiela

ответ

5

Выяснил это благодаря комментарию @ tschiela. Я должен был это сделать:

$scope.createMember = function(member) { 
    var membersService = new Members(member); 
    membersService.$create(function(member) { 
     $scope.members.push(member); 
     $scope.member = ''; 
    }); 
}; 
+0

То же самое для меня. Я просто устанавливаю $ scope.MyObject в null в моем методе отправки формы. –

2

Просто введите стандартное значение формы.

HTML-формы

<form novalidate id="paperForm" class="form-horizontal" name="formPaper"> 
<div class="form-group"> 
<label class="col-sm-3 control-label" for="name"> 
    Name 
</label> 
<div class="col-sm-8"> 
    <input type="text" id="name" placeholder="Please Enter Name" class="form-control" ng-model="paper.name" ng-name="name" required> 
</div> 

<label class="col-sm-3 control-label" for="name"> 
    Department 
</label> 
<div class="col-sm-8"> 
    <input type="text" id="department" placeholder="Please Enter Department" class="form-control" ng-model="paper.department" ng-name="department" required> 
</div> 

</div> 

<button type="button" class="btn btn-default" ng-click="reset(paper)">Reset</button> 

</form> 

кодовый набор сброса внутри контроллера

var deafualtForm = { 
name : '', 
department : '' 
} 

$scope.reset= function(paper) { 
$scope.paper = angular.copy(deafualtForm); 
} 
Смежные вопросы