【问题标题】:Breeze custom validationBreeze 自定义验证
【发布时间】:2017-07-20 21:55:50
【问题描述】:

在进行条件验证时,如何将实体引用传递给验证上下文?

考虑以下场景:

我有单选按钮列表,它没有直接绑定到微风实体,而是绑定到我的视图模型属性。根据单选按钮的选择,我想验证绑定到我的微风数据实体的表单上的其他输入。

我尝试在单选按钮上构建自定义验证,其中我的验证函数在验证上下文的内置 value 属性中保存对单选按钮选择的引用。现在,我正在尝试在验证函数中访问我的实体对象,以根据单选按钮选择来评估我的表单的其他输入。

【问题讨论】:

  • 不要追问。你能给我们看一个代码和html的小样本吗?你也在使用 Angular 还是 Knockout
  • 我的意思是进行实体级别的验证。我想将实体传递给我的验证工厂,然后通过检查我的实体上的其他属性来执行条件验证。我在breathjs网站上找到了关于如何做的文档。 http://www.breezejs.com/documentation/validation

标签: validation breeze


【解决方案1】:

这是最大长度验证的任意示例。使用上下文访问实体,然后添加您需要的逻辑。

        function maxLengthValidatorFn(value, context) {
           var someValue = context.entity.SomeProperty;
           //Do something with some value.
           if (value && value.length > context.maxLength)
          return false;
           return true;
        }

        function maxLengthValidatorFactory(context) {
            return new breeze.Validator(
                "maxLength",
                maxLengthValidatorFn,
                { messageTemplate: "'%hrn%' exceeds maximum character length of %maxLength%", hrn: context.propertyLabel, maxLength: context.maxLength }
            );
        }

【讨论】:

  • context.entity 属性似乎不在微风文档中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-27
  • 2017-10-03
  • 2011-04-15
  • 2014-10-04
  • 2012-11-27
相关资源
最近更新 更多