在验证期间从自定义关键字代码访问“其他错误”?

时间:2018-09-10 20:39:05

标签: javascript ajv

在验证自定义关键字时,我可以检查以前生成的验证错误吗?

这是迄今为止我能想到的最好的方法:

ajv.addKeyword('fromInput',{
  modifying:true,
  compile: function (schema, parentSchema, it){
    return function () {
      // console.log(it)
      return true;
    }
  },
  errors: true
});

请注意,我使用该选项定义“编译:” fn的原因仅在于此选项允许使用“ it”上下文,因此可以从那里访问“ it”或“ it.self”。

为清楚起见,并确认我正确地解释了此功能(?),我将custom关键字放在模式中的最后一个位置,因此我假设在验证时所有先前的关键字都将得到验证并产生错误。

因此,在验证该自定义关键字的过程中,我需要访问这些验证错误并根据该错误做出一些决定。

但是,我不知道从这里出发(请参见上面的代码),因为在调试器中我看不到任何错误。

it.self确实具有“错误”属性,但它是=null

1 个答案:

答案 0 :(得分:0)

根据ajv的作者,“目前只有inline keywords可以访问验证错误。”

这里是评论的linkanother link则是同一件事。

内联关键字也可以访问“它”,它是“模式编译上下文”