2015-06-19 115 views
3

我使用角度js進行驗證表單上的驗證工作正常,但在表單有效後,我發送ajax請求並將其與jquery代碼一起休息,所以我的表單仍然顯示有效。這是繼JS片段:驗證後的角度形式重置

var myApp = angular.module('myApp', []); 

myApp.controller('myController', function ($scope) {  

    $scope.clearForm = function (formId) { 
     $(formId)[0].reset(); 
     console.log($scope.note['title']) 
     //$scope.note['title'] = null; 
    }; 

    $scope.submitForm = function() { 
     if ($scope.noteForm.$valid) { 
      alert("valid"); 
      //ajax request 
      $scope.clearForm('#noteForm'); 
     } 
    } 
}); 

Fiddle Demo

如果我設置空白值與$scope.note['title'] = null;這表明清除後的錯誤。

Fiddle Demo

我該如何解決?我想要的是休息後應該進入初始狀態。

回答

1

與其在jQuery中清除表單,我寧願在form上使用$setPristine()方法,這會使角色形式爲pristine。您還需要通過執行$scope.note = {}來清除表單域。

代碼

$scope.clearForm = function (formId) { 
    $scope.noteForm.$setPristine(); //you should use setPristine that will make for pristine 
    $scope.note = {}; //this will clear a form values. 
}; 

Demo Fiddle