2016-08-06 6 views
2

Ich habe Login-Formular, Ich löschte das Formular nach dem Formular absenden, und legen Sie Formular als Pristine-Modus. aber Fehlermeldung ist immer noch vorhanden. HierAngular JS Form zurückgesetzt mit Pristine funktioniert nicht

ist mein Code,

<form name="loginForm" ng-submit="loginForm.$valid && login(user)" novalidate style="position: relative"> 
    <div class="log-input-frm mdl-textfield mdl-js-textfield mdl-textfield--floating-label textfield-demo"> 
     <div class="col-sm-12 f_name"> 
      <input ng-model="user.username" name="username" type="email" placeholder="Email address" required=""> 
      <div ng-show="loginForm.$submitted || loginForm.username.$touched" ng-model="loginForm.username"> 
       <span ng-show="loginForm.username.$error.required" class="text-danger">Please enter email address.</span> 
       <span ng-show="loginForm.username.$error.email" class="text-danger">Please enter valid email address.</span> 
      </div> 
     </div> 
    </div> 
    <div class="log-input-frm mdl-textfield mdl-js-textfield mdl-textfield--floating-label textfield-demo"> 
     <div class="col-sm-12 f_name"> 
      <input ng-model="user.password" name="password" type="password" placeholder="Password" required=""> 
      <div ng-show="loginForm.$submitted || loginForm.password.$touched" ng-model="loginForm.password"> 
       <span ng-show="loginForm.password.$error.required" class="text-danger">Please enter password.</span> 
      </div> 
     </div> 
    </div> 
    <div class="buttons"> 
     <span class="signup pull-left"> 
      <a ui-sref="forgotpassword">Forgot password</a> 
     </span> 
     <div class="link"> 
      <div class="link" style="padding-bottom:0;"> 
       <md-button type="submit" class="md-raised primary" > Login </md-button> 
      </div> 
     </div> 
    </div> 
</form> 

Controller-Code zurücksetzen Form und in unberührtem Modus.

$scope.loginForm.$setPristine(); 
$scope.loginForm.$setUntouched(); 
$scope.user = {}; 

Wo bin ich falsch ???

+0

Vielleicht verwenden, müssen Formular unterbliebenen machen. Hier ist ein nützlicher Link: http://stackoverflow.com/questions/32233876/unsubmit-a-form-in-angular –

+0

Ich versuchte, wie oben Link angegeben ist, aber beachten Sie arbeiten, es ist Show 'Fehler: $ scope.loginForm . $ setPristine ist keine Funktion' – Kirit

+0

Es sollte funktionieren .. Sie könnten einen [** Plunker **] (http://plnkr.co/edit/) zur Verfügung stellen, um Ihre Situation besser zu veranschaulichen. – developer033

Antwort

0

aufgelöst ich mein Problem, indem Sie die Timeout-Funktion

$scope.user = {}; 
$timeout(function() { 
    $scope.loginForm.$setPristine(); 
    $scope.loginForm.$setUntouched(); 
    $scope.loginForm.$submitted = false; 
}); 
Verwandte Themen