2017-04-17 137 views
0

通過使用ajv,我如何參考foo來驗證bar具有相同的值?AJV:檢查一個屬性是否等於另一個屬性

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' } }, 
... 

但沒有奏效。

回答

2

您可以:

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' } }, 
    } 
}; 
+0

好極了,感謝您的幫助! – DKo