3

ng-messages を使用してカスタム検証を作成しました。たとえば、検証よりも大きい場合は次のとおりです。

(function (module) {
    module.directive('greaterThanValidator', function () {
            return {
                require: ['ngModel'],
                link: function (scope, element, attrs, ngModel) {
                    var data = attrs.greaterThanValidator;
                    ngModel.$validators.greaterThan = function (value) {

                        if (!isNaN(parseFloat(value)) && !isNaN(parseFloat(data))) {
                            value = parseFloat(value);
                            data = parseFloat(data);
                        }

                        if (!value || value.length == 0) {
                            element.$setValidity('greaterThan', true);
                        } else if (value>data) {
                            element.$setValidity('greaterThan', true);
                        } else {
                            element.$setValidity('greaterThan', false);
                        }
                    };
                }
            }
        }
    );
})(angular.module("lego.base"));

これは私のメッセージですdiv

<div class="error-messages" ng-if="..."
     ng-messages="form.field.$error">
    <div ng-message="greaterThan">Your value should be greater than {{number}}</div>
</div>

numberメッセージコンテンツに渡すにはどうすればよいですか?

Edit:

使い方は以下の通りです。

<input ng-model="something" greater-than-validator="100">
4

0 に答える 0