Angular で$setValidity 関数を使用する
Angular のある $setvalidity() は、指定されたフォームフィールドの有効性を設定する関数です。この関数は、コンストラクターメソッドと他のコントローラーメソッドの両方で使用できます。
この記事では、コントローラー内で $setValidity を使用する方法を説明します。また、クライアント側に送信する前に、サーバー側で入力の有効性を設定する方法についても説明します。
Angular の $setValidity
Angular は、入力の有効性を設定できる $setValidity と呼ばれるディレクティブを提供します。ビュー内ではなく、コントローラー内で使用されます。
$setValidity 関数は、フォーム要素の有効性を検証するために使用できるキーと値のペアを割り当てます。
キーは一意であり、このコンテキストでは値は true または false です。 $setValidity メソッドが呼び出されると、特定の値が $error オブジェクトに追加されます。これは、値が受け入れ可能かどうかを確認するために使用できます。
$setValidity 関数は、次の方法で使用できます。
- 
フォーム全体の有効性を設定します。
$scope.$setValidity($scope.myForm, 'myFormIsValid'); - 
フィールドの有効性を設定します。
$scope.$setValidity($scope.myForm, 'fieldName', true); 
$setValidity ディレクティブはフォームフィールドの有効性に影響を与えないことに注意することが重要です。フォームフィールドとそれに対応するバリデーターの有効性を設定するだけです。
Angular のコントローラー内で $setValidity を使用する手順
このチュートリアルでは、Angular のコントローラー内で $setValidity を使用する方法を示します。
- 
HomeControllerという名前のコントローラーを作成します。 - 
$setValidityおよびFormsModuleモジュールをインポートします。 - 
$setValidity()という関数を作成します。この関数内で、$setValidityの値にtrueまたはfalseを割り当てます。 - 
ngOnInit()イベント内でこの関数を呼び出します。これにより、Angular アプリが初期化されるときに、$setValidity()関数が呼び出されるようになります。 
上記の手順を使用して、Angular で $setValidity を使用する方法の例について説明しましょう。
JavaScript コード:
angular.module('Adil', [
    'ngRoute',
    'ui.router'
])
.controller('HomeController', ['$scope', function ($scope) {
    $scope.loading = false;
    $scope.init = function () {
         $scope.data = {
         };
    };
    $scope.save = function (data, form) {
        console.log(form);
        form.input.$setValidity("name", true);
    }
    $scope.init();
}]);
HTML コード:
<html>
<head>
    <h1>Example of $setValidity in Angular</h1>
        <script src="script.js"></script>
</head>
<body ng-app="Adil">
    <form name="Name" ng-controller="HomeController">
        <div class="form-group">
            <label>Please Enter a Valid URL of your Website</label>
            <input type="url"  />
            <span ng-show="Name.input.$valid"></span>
        </div>
        <button ng-click="save(data, Name)">Save</button>
    </form>
</body>
</html>
ここをクリックして、上記のコードの動作を確認してください。
Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.
Facebook