Javascript 使用KendoUI grid和breeze.js的最大调用堆栈

Javascript 使用KendoUI grid和breeze.js的最大调用堆栈,javascript,kendo-grid,breeze,Javascript,Kendo Grid,Breeze,我在集成breeze.js和kenoui网格时遇到了一个问题。我的视图模型中有一个可观察的数组,我填充这个数组调用ajax操作。当我将数组连接到网格时,我得到一个异常“超出了最大调用堆栈”。我读过一篇文章,说网格在breeze.js实体中的entityacpect有问题。 是否有此问题的热修复程序或任何其他建议 提前感谢…这是一个标准的循环参考javascript序列化问题。这不是一个具体问题 循环参照是实体模型的自然特征。考虑一个客户。订单属性返回客户订单,每个订单都有一个订单。客户导航属性返

我在集成breeze.js和kenoui网格时遇到了一个问题。我的视图模型中有一个可观察的数组,我填充这个数组调用ajax操作。当我将数组连接到网格时,我得到一个异常“超出了最大调用堆栈”。我读过一篇文章,说网格在breeze.js实体中的entityacpect有问题。 是否有此问题的热修复程序或任何其他建议


提前感谢…

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

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

对于没有循环导航路径的Breeze实体,您甚至可以遇到循环引用问题。困难源于每个Breeze实体通过其entityAspect属性具有固有的循环性:

如果通过Breeze EntityManager.executeQuery或EntityManager.saveChanges方法,这种循环引用对Breeze来说不是问题,因为Breeze会自动为您处理序列化过程,但是如果您绕过这些方法(您可能已经这样做了),那么您必须自己管理序列化

所以你有两种方法

1) 使用EntityManager.executeQuery执行ajax操作。通过这种方法几乎可以到达任何端点

2) 阅读以下文章(关于淘汰,但问题相同),并明确管理序列化:


感谢您的回复,如果我将breeze与一个简单的显示表(例如bootstrap样式的表)一起使用,我没有问题,网格确实会出现这种情况。如果我将breeze用于只读案例,那么我错过了它的所有好处。请联系Telerik(剑道的供应商)。我们正在与他们讨论为Breeze创建活页夹,他们需要听到你的声音。我刚刚面临这个问题,我正在试图找到解决方案。杰伊,这有什么办法解决吗?