Angularjs KendoTreeView with BreezeJS抛出“超过最大调用堆栈大小”错误

Angularjs KendoTreeView with BreezeJS抛出“超过最大调用堆栈大小”错误,angularjs,kendo-ui,breeze,Angularjs,Kendo Ui,Breeze,使用BreezeJS实体,并尝试使用来自KendoUI的KendoTreeView显示它们。树视图抛出此错误,可能是因为循环引用。breeze实体中有多个循环,最明显的是entity.entityAspect.entity,并且模型可能包含循环引用,例如Customer->Orders->Customer。如何将KendoTreeView配置为仅处理特定的导航属性,而忽略导致循环引用的导航属性 我意识到我可以通过实体进行for循环,并为显示目的构建一个辅助阵列。但是,如果可能的话,我希望直接绑定

使用BreezeJS实体,并尝试使用来自KendoUI的KendoTreeView显示它们。树视图抛出此错误,可能是因为循环引用。breeze实体中有多个循环,最明显的是entity.entityAspect.entity,并且模型可能包含循环引用,例如Customer->Orders->Customer。如何将KendoTreeView配置为仅处理特定的导航属性,而忽略导致循环引用的导航属性

我意识到我可以通过实体进行for循环,并为显示目的构建一个辅助阵列。但是,如果可能的话,我希望直接绑定到实体,而不是试图手动保持树与实体数组同步


FWIW我使用的是角度绑定,等等,不确定这在这种情况下是否有区别。

这是一个标准的循环引用javascript序列化问题。这不是一个具体问题

循环参照是实体模型的自然特征。考虑一个客户。订单属性返回客户订单,每个订单都有一个订单。客户导航属性返回给它的母客户。这是意料之中的,并且将导致一个错误,就像您在尝试序列化此类图时遇到的错误一样,除非您显式地管理序列化

请参阅此链接:


或者这篇帖子:

Jay谢谢你的意见。我意识到这不是微风的问题。我希望找到一种方法来配置KendoUI来处理这种类型的问题,这样我就可以直接绑定到breeze实体。在Kendo做出一些更改之前,我们最好的建议是在将实体绑定到Kendo之前创建实体的副本,删除所有循环引用。你有没有联系过他们,这个问题以前就出现过,他们听到的越多,他们就越有可能去听。