Aktivieren Sie die Validierung eines Feldes, wenn ein anderes Feld geändert wird

Habe ich eine benutzerdefinierte überprüfung der Richtlinie, die aufgerufen wird, ist richtig, wenn ein Feld geändert wird. Jedoch, ob dieses Feld gültig ist, basiert auch auf einem anderen Feld den Wert. Das zweite Feld ist ein select-Liste, wenn das von Bedeutung ist.

Ich Frage mich, ob es einige Möglichkeit, die ich auslösen könnte Validierung manuell, wenn der zweiten form ist verändert. Vielleicht mithilfe der ng-change Veranstaltung. Was ist der richtige Weg, um mit etwas wie diesem?

Hier ist meine Richtlinie:

angular.module('myApp', []).
    directive('validage', function () {
        return {
            require: 'ngModel',
            link: function (scope, elem, attr, ngModel) {

                function validate(value) {
                    var valid = true;
                    if ((GetDateDifference(new Date(value), new Date()) < 16 || GetDateDifference(new Date(value), new Date()) > 129)
                    && scope.dep.DependantType == "Spouse") {
                        valid = false;
                    }
                    ngModel.$setValidity('validage', valid);
                    return value;
                }

                //For DOM -> model validation
                ngModel.$parsers.unshift(function (value) {
                    var valid = true;
                    if ((GetDateDifference(new Date(value), new Date()) < 16 || GetDateDifference(new Date(value), new Date()) > 129)
                    && scope.dep.DependantType == "Spouse") {
                        valid = false;
                    }
                    ngModel.$setValidity('validage', valid);
                    return value;
                });

                //For model -> DOM validation
                ngModel.$formatters.unshift(function (value) {
                    var valid = true;
                    if ((GetDateDifference(new Date(value), new Date()) < 16 || GetDateDifference(new Date(value), new Date()) > 129)
                    && scope.dep.DependantType == "Spouse") {
                        valid = false;
                    }
                    ngModel.$setValidity('validage', valid);
                    return value;
                });
            }
        };
    });

Wenn Sie neu in AngularJS, ich würde definitiv empfehlen, Lesen Sie diese 2 Artikel: Teil 1 & Teil 2. Sie geben einen überblick über AngularJS Formen.

InformationsquelleAutor der Frage PFranchise | 2013-06-18

Schreibe einen Kommentar