3

AngularJS アプリには 2 つのドロップダウンがあり、1 つは大人の数用、もう 1 つは子供の数用です。子供の数が常に大人の数よりも少ないか等しいかどうかを検証する必要があります。

これを検証するカスタム ディレクティブを作成しました。これは、子供の数を変更すると正常に機能しますが、大人の数を変更するときにも機能する必要があります。

<select name="adults" ng-model="pax.adults" ng-options="v for v in options">
</select>
<select name="children" ng-model="pax.children" ng-options="v for v in options" children>

app.directive('children', function () {
    return {
        require: 'ngModel',
        link: function (scope, elm, attrs, ctrl) {
            var pax = scope.pax;
            ctrl.$parsers.unshift(function (viewValue) {
                ctrl.$setValidity('children', viewValue <= pax.adults);
                return viewValue;
            });
        }
    };
});

たとえば、大人 2 名と子供 3 名がいますが、子供の数は無効です。子供の数を 2 に変更すると有効になりますが、代わりに大人の数を 3 に変更すると、子供の検証が開始されません。

角度のある方法でこれを達成する最良の方法は何ですか?

ここに私がやっていることを示すjsFiddleがあります:http://jsfiddle.net/geZB5/

乾杯、

4

1 に答える 1