2017-08-24 3 views
0

私は送信時にフォームが送信されたときに再初期化するフォームを持っています。私はメッセージを表示し、同じページにとどまります。ng-送信後にフォームをリセットし、ng-messagesを表示しない

ただし、フォームのフィールドには、フォームが「タッチ」されたときにエラーメッセージが表示されます。以下に示す

enter image description here

を私はこれを一周する方法についていくつかの記事を読んだことがあるが、どれも私のために働いていません。

マイHTML:

<form name="newPost" ng-submit="makeNewPost()"> 
<div class="form-group"> 
    <input name="title" maxlength="46" minlength="2" type="text" class="form-control" ng-model="post.title" required="required"> 
    <div ng-messages="newPost.title.$error" ng-if="newPost.title.$touched"> 
    <div class="errorMessage" ng-message="required">Title is mandatory *</div> 
    </div> 
</div> 

<input type="submit" value="Submit" class="btn btn-success" id="submit"> 

私のコントローラコードデータをリセットするには:もちろん

var resetData = function(){ 
    $scope.post = {}; 
}; 

resetData(); 

がより多くのフィールドがありますが、問題を解決するために、ちょうどこの簡単なコードがしますそれを実証する。

任意の入力が役立ちます。ありがとうございました!

答えて

1

あなたは、resetData機能は次のようになります。

newPostはフォーム名です& $ setUntouched、$ setPristine最初にロードされたばかりのような形が自然のままになります
$scope.resetData = function(){ 
    $scope.post = {}; 
    $scope.newPost.$setUntouched(); 
    $scope.newPost.$setPristine(); 
} 

。この関数は、submit関数の最後で呼び出します。

+0

あなたは伝説です!本当にありがとう。魅力と半分のように動作します –

+1

@ShayanKhan喜んでそれは助け:) – Shantanu

関連する問題