2017-01-15 6 views
1

私はコードが不思議です。 dataSvc.savesのコールバックの後にvm.bookDetails = {}; and vm.bookForm.$setPristineは何ですか?

angular.module('controllers',[]) 
    .controller('SecondController', function(dataSvc){ 
    var vm=this; 

    vm.saveData = function() { 
     dataSvc.save(vm.bookDetails).then(function(result) { 
     vm.bookDetails = {}; 
     vm.bookForm.$setPristine(); 
     }); 
    }; 

    vm.numberPattern = /^\d*$/; 
    }); 

コードがhere

答えて

1

からであるNG-汚いクラスはNG-原始的なクラスは、フォームがで変更されていないことを示しています一方、フォームは、ユーザーによって変更されていることを示していますユーザー。だから、汚いと元気な人は、同じ物語の2つの側面です。

クラスは任意のフィールドに設定され、フォームは2つのプロパティ$ dirtyと$ pristineを持ちます。

Angular.orgから$ setPristineは、その自然のままの状態にフォームを設定します

を意味します。

このメソッドは、フォームの$ pristine状態をtrueに設定し、$ dirty状態 をfalseに設定し、ng-dirtyクラスを削除してng-pristineクラスを追加します。 さらに、$ submittedステートをfalseに設定します。

$ scope.form。$ setPristine()関数を使用すると、フォームを元の状態にリセットできます。 $ setPristineは()angularjs

コード説明

angular.module('controllers',[]) 
    .controller('SecondController', function(dataSvc){ 
    var vm=this; 

    vm.saveData = function() { 
     dataSvc.save(vm.bookDetails).then(function(result) { 
     // This code will reset the form/clear value of all ngmodel 
     vm.bookDetails = {}; 
     // This code will set the validity of the form to invalid state, submitted cannot be made if pristine is set. 
     vm.bookForm.$setPristine(); 
     }); 
    }; 

    vm.numberPattern = /^\d*$/; 
    }); 
+0

が、それはリセットを意味しているの1.1.xのブランチで紹介されましたか? –

+0

あなたのコードでは、フォームの有効性を意味し、setPristineが呼び出されたときにフォームを送信できません。 – digit

関連する問題