Я установил для параметра $ data значение true, и я пытаюсь ограничить endDate как минимум значением startDate, используя выражение $ data. Этот пример должен пройти проверку, но это не так. (
var Ajv = require('ajv');
var ajv = new Ajv({allErrors: true, $data: true});
var schema = {
"properties": {
"filter": { "properties": {
"startDate": { type: 'string', format:'date'},
"endDate": { type: 'string', format:'date', formatMinimum: {'$data': '/filter/startDate'}}
}}
}};
var validate = ajv.compile(schema);
test({filter: {startDate:'2008-09-01', endDate: '2004-09-01'}});
function test(data) {
var valid = validate(data);
if (valid) console.log('Valid!');
else console.log('Invalid: ' + ajv.errorsText(validate.errors));
}
Я пробовал различные указатели JSON .. 0/startDate
1/startDate
и показанный /filter/startDate
, и все они приводят к одному и тому же действительному действительному действию! ответ.
Я ожидаю Неверный ответ с сообщением о том, что endDate требуется минимум startDate, но я получаю Valid! ответ.
Вы можете увидеть работающий пример на https://runkit.com/jcdietrich/5d0a45ced5afb8001c33808b