Richtlinie IP überprüfen: PORTAngularJS - anzeigen Benutzerdefinierte Fehlermeldung mit der Richtlinie
myApp.directive("validateServerAddress", ['input', function (input) {
var linker = function (scope, element, attrs) {
alert('Tese');
var parts = input.split(":");
var ip = parts[0].split(".");
var port = parts[1];
return validateNum(port, 1, 65535) &&
ip.length == 4 &&
ip.every(function (segment) {
return validateNum(segment, 0, 255);
});
scope.validateNum = function(input, min, max) {
var num = +input;
return num >= min && num <= max && input === num.toString();
}
};
return {
restrict: "EA",
link: linker
};
}]);
HTML Eingang
<div class="input-group">
<input type="text" validate-serveraddress placeholder="255.255.255.255:5000" name="serveraddress" id="serveraddress" class="color-tooltip form-control" ng-model="serveraddress" required>
</div>
Bis Benutzer eine gültige IP: PORT-Adresse, muss ich zeigt benutzerdefinierte Fehlermeldung 'Ungültige Serveradresse'. Die Richtlinie funktioniert gut. Unten könnte verwendet werden und benutzerdefinierte Klasse kann angewendet werden, aber ich muss die Nachricht wie Bootstrap zeigt für das erforderliche Feld anzeigen.
document.querySelector("input").oninput = function (e) {
this.className = validateIpAndPort(this.value) ? "" : "invalid";
}
.invalid {
color: red;
}
Wie kann ich zeigen, benutzerdefinierte Validierung ngMessages über Direktive wie in Bild unten gezeigt?
sehen diese Antwort http://stackoverflow.com/questions/36721551/how-to-set-validity-in-directive-angularjs –
verwenden ngModel in Ihrer Richtlinie, dann ngModel Validatoren $ – Fetrarij
@. FetraR könnten Sie mit einem Code-Snippet oder einer Änderung der oben genannten Direktive arbeiten? – Slimshadddyyy