Angular で$setValidity 関数を使用する

Muhammad Adil 2023年1月30日
  1. Angular の $setValidity
  2. Angular のコントローラー内で $setValidity を使用する手順
Angular で$setValidity 関数を使用する

Angular のある $setvalidity() は、指定されたフォームフィールドの有効性を設定する関数です。この関数は、コンストラクターメソッドと他のコントローラーメソッドの両方で使用できます。

この記事では、コントローラー内で $setValidity を使用する方法を説明します。また、クライアント側に送信する前に、サーバー側で入力の有効性を設定する方法についても説明します。

Angular の $setValidity

Angular は、入力の有効性を設定できる $setValidity と呼ばれるディレクティブを提供します。ビュー内ではなく、コントローラー内で使用されます。

$setValidity 関数は、フォーム要素の有効性を検証するために使用できるキーと値のペアを割り当てます。

キーは一意であり、このコンテキストでは値は true または false です。 $setValidity メソッドが呼び出されると、特定の値が $error オブジェクトに追加されます。これは、値が受け入れ可能かどうかを確認するために使用できます。

$setValidity 関数は、次の方法で使用できます。

  1. フォーム全体の有効性を設定します。

    $scope.$setValidity($scope.myForm, 'myFormIsValid');
    
  2. フィールドの有効性を設定します。

    $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
Muhammad Adil avatar Muhammad Adil avatar

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

関連記事 - Angular Function