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