如何动态分配valdr规则?
How to dynamically assign valdr rules?
请原谅我对 AngularJS 和 valdr 的了解...
我有一个使用 AngularJS 的应用程序,其中 ui 是动态生成的,用于使用提供的元数据编辑某些对象以确定解释对象成员的类型。我将添加额外的元数据来为每个成员设置验证规则。
我找到了 valdr,我想知道是否可以添加使用 valdrProvider.addConstraints()
为每个可编辑字段重复调用的规则。大概规则名称必须是唯一的?
如何在卸载数据时从规则集中删除规则?
这种方法是否有效,或者我应该直接使用 AngularJS 指令或其他方式映射规则元数据?
你的方法听起来不错。 valdr 提供了一个 removeConstraint(constraintName)
函数,可以满足您的需要。但是请注意,这会删除给定模型类型的所有约束。
以 https://github.com/netceteragroup/valdr#getting-started 为例。
yourApp.config(function(valdrProvider) {
valdrProvider.addConstraints({
'Person': {
'lastName': {
'size': {
'min': 2,
'max': 10,
'message': 'Last name must be between 2 and 10 characters.'
},
'required': {
'message': 'Last name is required.'
}
},
'firstName': {
'size': {
'min': 2,
'max': 20,
'message': 'First name must be between 2 and 20 characters.'
}
}
}
});
调用 removeConstraint('Person')
会移除 所有 对 Person
的约束。如果您只是想删除 firstName
因为您删除了名字输入字段,您可以使用 Person
.
的更新约束定义再次调用 addConstraints
最后的笔记:
- 如果字段被删除,valdr 不会强制您删除约束(参见 https://github.com/netceteragroup/valdr/issues/46 的讨论)
- 是的,约束名称是唯一的,因为它们绑定到应该具有唯一名称的模型类型,不应该有两个
Person
具有不同实现的类型
请原谅我对 AngularJS 和 valdr 的了解...
我有一个使用 AngularJS 的应用程序,其中 ui 是动态生成的,用于使用提供的元数据编辑某些对象以确定解释对象成员的类型。我将添加额外的元数据来为每个成员设置验证规则。
我找到了 valdr,我想知道是否可以添加使用 valdrProvider.addConstraints()
为每个可编辑字段重复调用的规则。大概规则名称必须是唯一的?
如何在卸载数据时从规则集中删除规则?
这种方法是否有效,或者我应该直接使用 AngularJS 指令或其他方式映射规则元数据?
你的方法听起来不错。 valdr 提供了一个 removeConstraint(constraintName)
函数,可以满足您的需要。但是请注意,这会删除给定模型类型的所有约束。
以 https://github.com/netceteragroup/valdr#getting-started 为例。
yourApp.config(function(valdrProvider) {
valdrProvider.addConstraints({
'Person': {
'lastName': {
'size': {
'min': 2,
'max': 10,
'message': 'Last name must be between 2 and 10 characters.'
},
'required': {
'message': 'Last name is required.'
}
},
'firstName': {
'size': {
'min': 2,
'max': 20,
'message': 'First name must be between 2 and 20 characters.'
}
}
}
});
调用 removeConstraint('Person')
会移除 所有 对 Person
的约束。如果您只是想删除 firstName
因为您删除了名字输入字段,您可以使用 Person
.
addConstraints
最后的笔记:
- 如果字段被删除,valdr 不会强制您删除约束(参见 https://github.com/netceteragroup/valdr/issues/46 的讨论)
- 是的,约束名称是唯一的,因为它们绑定到应该具有唯一名称的模型类型,不应该有两个
Person
具有不同实现的类型