2

原谅我对 AngularJS 和 valdr 的了解很少......

我有一个使用 AngularJS 的应用程序,其中动态生成 ui 以编辑某些对象,并提供元数据以确定解释对象成员的类型。我将添加额外的元数据来为每个成员设置验证规则。

我找到了 valdr,我想知道是否可以valdrProvider.addConstraints()为每个可编辑字段重复调用添加规则。大概规则名称必须是唯一的?

卸载数据时如何从规则集中删除规则?

这种方法是否有效或者我应该直接使用 AngularJS 指令或其他东西映射规则元数据?

4

1 回答 1

2

你的方法听起来不错。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因为您删除了名字输入字段,您可以addConstraints使用更新的约束定义再次调用Person.

最后注意事项:

  • 如果字段被删除,valdr 不会强加您删除约束(请参阅https://github.com/netceteragroup/valdr/issues/46上的讨论)
  • 是的,约束名称是唯一的,因为它们绑定到应该具有唯一名称的模型类型,不应该有两种Person具有不同实现的类型
于 2015-01-30T23:09:29.977 回答