单个复杂类型数据属性的多个验证器
Multiple validators for single complex type data property
我遇到过这样一种情况,其中两个数据属性使用相同的复杂类型。下面是使用的实体。
{
"name": "dataProperty1",
"complexTypeName": "ComplexType:#test"
},
{
"name": "dataProperty2",
"complexTypeName": "ComplexType:#test"
}
复杂类型:
{
"shortName": "ComplexType",
"namespace": "test",
"isComplexType": true,
"dataProperties": [
{
"name": "fieldA",
"dataType": "String",
"maxLength": 50
}
]
}
现在我的问题是,两个数据属性(dataProperty1 和 dataProperty2)都对复杂类型数据属性 (fieldA) 进行了特定验证。
我尝试为复杂数据属性 (fieldA) 添加两个不同的验证器,但两个验证器都在为两个数据属性执行。
{
"name": "fieldA",
"dataType": "String",
"maxLength": 50,
"validators"[
{
//name :validationA
},
{
//name :validationB
}
]
}
假设 'dataProperty1' 只需要执行 'validationA' 而 'dataProperty2' 只需要执行 'validationB'。
对于这种情况,有什么特别需要处理的吗?
请帮助解决此问题。
提前致谢。
在您的验证函数中,'context' 参数将有一个 'propertyName' 属性。此 'propertyName' 将是您的 属性 的路径,因此您可以区分 'billingAddress' 和 'locationAddress'。此外,如果您验证 complexType 的 sub属性,则 'context.propertyName' 将是您的 属性 的虚线路径,即类似于 'billingAddress.city' 与 'locationAddress.city'。
所以你可以像这样写一个验证器
var valFn = function (v, context) {
var propName = context.propertyName;
// change the validation logic here depending on the 'propName';
};
var myValidator = new Validator("MyValidator", valFn,
{ messageTemplate: "Custom message template..." });
我遇到过这样一种情况,其中两个数据属性使用相同的复杂类型。下面是使用的实体。
{
"name": "dataProperty1",
"complexTypeName": "ComplexType:#test"
},
{
"name": "dataProperty2",
"complexTypeName": "ComplexType:#test"
}
复杂类型:
{
"shortName": "ComplexType",
"namespace": "test",
"isComplexType": true,
"dataProperties": [
{
"name": "fieldA",
"dataType": "String",
"maxLength": 50
}
]
}
现在我的问题是,两个数据属性(dataProperty1 和 dataProperty2)都对复杂类型数据属性 (fieldA) 进行了特定验证。
我尝试为复杂数据属性 (fieldA) 添加两个不同的验证器,但两个验证器都在为两个数据属性执行。
{
"name": "fieldA",
"dataType": "String",
"maxLength": 50,
"validators"[
{
//name :validationA
},
{
//name :validationB
}
]
}
假设 'dataProperty1' 只需要执行 'validationA' 而 'dataProperty2' 只需要执行 'validationB'。
对于这种情况,有什么特别需要处理的吗?
请帮助解决此问题。
提前致谢。
在您的验证函数中,'context' 参数将有一个 'propertyName' 属性。此 'propertyName' 将是您的 属性 的路径,因此您可以区分 'billingAddress' 和 'locationAddress'。此外,如果您验证 complexType 的 sub属性,则 'context.propertyName' 将是您的 属性 的虚线路径,即类似于 'billingAddress.city' 与 'locationAddress.city'。
所以你可以像这样写一个验证器
var valFn = function (v, context) {
var propName = context.propertyName;
// change the validation logic here depending on the 'propName';
};
var myValidator = new Validator("MyValidator", valFn,
{ messageTemplate: "Custom message template..." });