AJV:检查 属性 是否等于另一个 属性
AJV: check if a property equals another property
通过使用 ajv
,我如何引用 foo
来验证 bar
具有相同的值?
var Ajv = require('ajv');
var ajv = new Ajv({allErrors: true});
var schema = {
'properties': {
'foo': { 'type': 'string', 'minLength': 3 },
'bar': { 'type': 'string', ###HERE### },
}
};
data = {
'foo': 'abc',
'bar': 'ab',
};
ajv.validate(schema, data); // <-- should return false, foo !== bar
我试过使用(有类似的变化):
...
'bar': { 'type': 'string', 'format': { '$data': 'foo' } },
...
但这没有用。
您可以:
var ajv = new Ajv({allErrors: true, $data: true}); // for version >=5.0.0
var schema = {
properties: {
foo: { type: 'string', minLength: 3 },
bar: { const: { $data: '1/foo' } },
}
};
@explorer,这里是
foo: {
type: "string",
not: {
const: {
$data: "1/baz"
}
}
}
通过使用 ajv
,我如何引用 foo
来验证 bar
具有相同的值?
var Ajv = require('ajv');
var ajv = new Ajv({allErrors: true});
var schema = {
'properties': {
'foo': { 'type': 'string', 'minLength': 3 },
'bar': { 'type': 'string', ###HERE### },
}
};
data = {
'foo': 'abc',
'bar': 'ab',
};
ajv.validate(schema, data); // <-- should return false, foo !== bar
我试过使用(有类似的变化):
...
'bar': { 'type': 'string', 'format': { '$data': 'foo' } },
...
但这没有用。
您可以:
var ajv = new Ajv({allErrors: true, $data: true}); // for version >=5.0.0
var schema = {
properties: {
foo: { type: 'string', minLength: 3 },
bar: { const: { $data: '1/foo' } },
}
};
@explorer,这里是
foo: {
type: "string",
not: {
const: {
$data: "1/baz"
}
}
}