JSON.stringify 由于 breeze entityAspect 嵌套而失败

JSON.stringify failing due to breeze entityAspect nesting

我们正尝试在我们的 AngularJS/Breeze 门户网站中使用 loggly,当我尝试通过 $log.error 通过网络发送错误时遇到了一些麻烦(angular logging 和 loggly logging 在这里发挥作用)。最终调用 JSON.stringify 抛出:

Converting circular structure to JSON

问题是 entityErrors 数组包含一个实体数组,其中每个实体都包含一个 entityAspect,它还包含相同的实体,而该实体又包含相同的 entityAspect...是的,你明白我要去的地方了。

EntityAspect 由 Breeze 自动插入,所以我不确定如何绕过这个循环引用。是否有任何我没有想到的陷阱可能会导致这种递归嵌套,或者这就是 Breeze 中的 entityAspect 功能的工作原理?

如果您可以管理记录错误的方式,就可以避免这些问题。

很明显,由于您发现的原因,仅转储错误对象是行不通的。我挑选了我想要记录的错误信息。我一般不会丢弃 entityErrors;我 select 我真正需要的来自他们的告密信息。

如果我觉得我必须放弃它们,我会考虑使用 EntityManager.exportEntities 以及 asString=falseincludeMetadata=false 选项。这个 returns 一个没有循环的 JSON 结构。