【发布时间】:2013-12-08 20:12:26
【问题描述】:
我创建了一个指令 (itcValidationMessages),它将让我显示验证消息,并将其作为属性放在表单元素上,如下所示:
<form id="register-form" novalidate ng-submit="register()" itc-validation-messages ...
我上面提到的指令遍历表单中的所有输入元素,并在任何人的状态无效时显示错误消息。
我将验证消息存储在单独的文件中(因为它们可能很多,并且我想为 i8n 做准备,所以我将它们与指令分开),如下所示:
angular.module('models.ValidationMessages', []).constant("ValidationMessages", {
validationMessages: {
required: 'Value is required!',
email: 'You should enter a valid email address!',
minlength: 'Enter more characters!',
maxlength: 'You have entered to many characters!'
}
});
将这些消息保持不变是正确的方法吗?
我有每个验证器的默认消息,但我想让每个输入添加自定义消息,例如:
<input type="password" minlength-message="Your password should has at least 3 characters"
最好的方法是什么?
因为为什么我使用上面的属性(minlength-message),如果不使用$observe,我就无法从我的指令中访问它。
我不想声明一个对象并将这些自定义消息放在一个地方,因为我应该为每条消息添加一个输入名称,以识别它们属于哪个输入。
所以我尝试找到一些方便且符合艺术的解决方案。
我不需要 itcValidationMessages 指令中的隔离范围,并且我不希望像 minlengthMessage 这样的每个验证器都有一个单独的指令将特定的验证消息传递给应该显示此消息 (itcValidationMessages) 的指令。
【问题讨论】:
标签: javascript angularjs angularjs-directive