私はコントローラに頼っているのでAngularJSのディレクティブにはあまり慣れていません。指令によって他の入力に有効性を設定することは可能ですか?ここでは、ボタンがあり、クリックされたときです。特定の入力テキストに対して有効性を設定する必要があります。しかし、私はちょうど有効性を設定するコードを取得するように見えることはできません。ここでAngularJSでボタンをクリックしたときにディレクティブを使用して他の入力の妥当性を設定する
は、HTMLコードは次のとおりです。
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body>
<div class="container">
<div id="login-container">
<div class="form-group">
<span class="glyphicon glyphicon-user"></span>
</div>
<form name="loginForm" novalidate>
<div class="form-group">
dasdas -- {{ loginForm.student_code.$error.codeValidity }}
<input type="text" class="form-control text-center" name="student_code" ng-model="studentCode" placeholder="Enter Exam Code" required />
<span class="errors" id="error-student-code" ng-if="loginForm.student_code.$error.codeValidity">{{ errors }}</span>
</div>
</form>
<login-button form="loginForm"></login-button>
<a href="register"><button class="btn btn-primary">Register</button></a>
</div>
</div>
</body>
</html>
ここでJSコードは次のとおりです。http://plnkr.co/edit/kcdDgZpStQixTpGWqxOp?p=preview
PS:ここ
var app = angular.module("myApp", []);
app.directive('loginButton', loginButton);
loginButton.$inject = ["$http", "$window"];
function loginButton($http, $window){
return {
template: '<button type="button" class="btn btn-primary">Take Exam</button>',
link: function(scope, element, attrs, ctrl){
element.on('click', function(){
form = attrs.form;
form.student_code.$setValidity('codeValidity', true);
scope.errors = "Code is Invalid";
});
}
}
}
はplunker上のサンプルです。
これはコントローラを使用して簡単に達成できますが、私はこれに慣れていくために指示を使用してこれを達成したいと思います。
あなたの答えは素晴らしいです!しかし、私は何かを逃した。私はちょっとコードを変更しました。 ng-if = "loginForm.student_code。$ error.codeValidity"> {{エラー}}を
jsfiddleを提供してください、コメントは読みにくいです – sielakos
を参照してくださいhttp://plnkr.co/edit/kcdDgZpStQixTpGWqxOp?p=preview –