Angularjs 如何在ng消息中向消息传递值?
我使用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) {
(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">