Angularjs 如何在ng消息中向消息传递值?

Angularjs 如何在ng消息中向消息传递值?,angularjs,ng-messages,Angularjs,Ng Messages,我使用ng消息编写了一个自定义验证。例如,这里有一个大于验证的示例: (function (module) { module.directive('greaterThanValidator', function () { return { require: ['ngModel'], link: function (scope, element, attrs, ngModel) {

我使用ng消息编写了一个自定义验证。例如,这里有一个大于验证的示例:

(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
s:

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

顺便说一句,
ngModel.$validators.graterThan=函数(值)
是打字错误(
graterThan
)?这不会影响将值输入到消息中,但会阻止消息出现。请参阅《指令开发人员指南》:--在指令中,定义范围并将范围映射到控制器值(我假设数字在控制器中定义)@ryanyuyu抱歉,我写问题时出现了打字错误,但我的代码是有效的correct@water42请参阅添加的相关章节。数字由开发人员传递。您必须在控制器中设置数字,然后
<input ng-model="something" greater-than-validator="100">