如何查看breeze客户端验证错误

时间:2014-01-20 14:54:35

标签: breeze hottowel

我已阅读了breeze验证器信息,但不确定如何查看正在发生的实际错误。

错误:遇到客户端验证错误 - 有关更多详细信息,请参阅此对象上的实体错误集合。

我相信它存在于entity.entityAspect.getValidationErrors()的某个地方,但我无法弄清楚如何从中获取实际错误。

我正在尝试将记录插入实体并在发生此错误消息时保存更改。

2 个答案:

答案 0 :(得分:9)

见:

http://www.breezejs.com/sites/all/apidocs/classes/ValidationError.html

http://www.breezejs.com/sites/all/apidocs/classes/EntityAspect.html#method_getValidationErrors

简单示例:

var errors = entity.entityAspect.getValidationErrors();
errors.forEach(function(ve) {
   var errorMessage = ve.errorMessage;
   var property = ve.property;
});

要获取 EntityManager 中的所有错误,您可以使用

manager.getEntities().forEach(function(entity) { 
   var errors = entity.entityAspect.getValidationErrors();
   //.. do something with the errors ..
});

答案 1 :(得分:0)

您可以在尝试保存时“捕获”错误,如下所示:

manager.saveChanges()
  .catch(function(error){
      console.log("error catch", error, error.entityErrors);
  });

请记住,之后的任何代码都需要在

setTimeout(function() {}, 0);

因为捕获是异步的。 这是您不需要遍历应用程序中的所有实体来查找有错误的实体。