knockoutjs - 在视图模型中使用循环引用进行调试

use*_*057 2 knockout.js

视图模型具有循环引用,通过设计,使用<pre data-bind="text: ko.toJSON($data)"></pre>于调试抛出:

Unable to parse bindings.
Message: TypeError: Converting circular structure to JSON;
Bindings value: text: ko.toJSON($data) 
Run Code Online (Sandbox Code Playgroud)

有办法解决这个问题吗?

RP *_*yer 9

最终对JSON.stringify内部的调用ko.toJSON会导致您的错误.

一种可以控制JSON输出的方法是toJSON在对象上提供一个函数,如下所述:http://www.knockmeout.net/2011/04/controlling-how-object-is-converted-to.html.这样,您可以在适当的位置删除循环引用.

您也可以使用其他一些技术.

在这种情况下,data将变为JSON,但parent将消失,因为它是已经被解包到其值中的可观察对象的属性.