2013-04-20 26 views
6

Tôi gặp sự cố khi đặt lại các trường biểu mẫu sau khi gửi trong AngularJS (v1.1.3). Dưới đây là một đoạn của những gì tôi đang cố gắng để làm:Đặt lại biểu mẫu sau khi gửi trong 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' 
    }); 
}; 

Có một cách khác để thiết lập lại các yếu tố hình thức?

+1

Đặt phạm vi var member.name null hoặc chuỗi rỗng (member.name = "") – tschiela

+0

Hm điều đó không hiệu quả. Tôi đang cố gắng để thiết lập lại tất cả các yếu tố đầu vào trong các hình thức không phải là dữ liệu trong phạm vi. – jesal

+0

nhưng để đặt lại phạm vi là cách thông thường. Hoặc chế độ xem không được đồng bộ hóa với mô hình. – tschiela

Trả lời

5

Đã tìm ra được nhờ nhận xét của @ tschiela. Tôi phải làm điều này:

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

Điều này cũng tương tự với tôi. Tôi chỉ cần đặt $ scope.MyObject thành null trong phương thức gửi biểu mẫu của tôi. –

2

Chỉ cần lấy giá trị mặc định của biểu mẫu.

dạng 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> 

bộ mã đặt lại bên trong điều khiển

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

$scope.reset= function(paper) { 
$scope.paper = angular.copy(deafualtForm); 
} 
Các vấn đề liên quan