gpt4 book ai didi

javascript - 使用 KendoUI 网格和 breeze.js 超过最大调用堆栈

转载 作者:行者123 更新时间:2023-11-29 22:07:56 26 4
gpt4 key购买 nike

我在集成 breeze.js 和 kenoui grid 时遇到了问题。我的 View 模型中有一个可观察数组,我填充这个数组调用 ajax 操作。当我将数组连接到网格时,出现异常“超出最大调用堆栈”。我读到一篇文章说网格在 breeze.js 实体中的 entityacpect 有问题。这个问题有没有热修复,或者有什么建议。

提前致谢...

最佳答案

这是一个标准的循环引用 javascript 序列化问题。这不是 Breeze 特有的问题。

循环引用是实体模型的自然特征。考虑返回客户订单的 Customer.Orders 属性,并且每个订单都有一个 Order.Customer 导航属性以返回其父客户。这是意料之中的,除非您明确管理序列化,否则将导致错误,就像您在尝试序列化此类图时遇到的错误。

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

如果您使用 Breeze EntityManager.executeQueryEntityManager.saveChanges 方法,这种循环引用对 Breeze 来说不是问题,因为 Breeze 自动处理序列化过程但是,如果您绕过这些您可能已经完成的方法,那么您必须自己管理序列化。

所以你有两种方法。

1) Use EntityManager.executeQuery to perform your ajax operation. Almost any endpoint can be reached via this method.

2) Read the following article ( it's about knockout but the issues are the same) and manage your serialization explicitly: http://www.breezejs.com/documentation/knockout-circular-references

关于javascript - 使用 KendoUI 网格和 breeze.js 超过最大调用堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19860110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com