2016-07-06 81 views
0

我有一个返回对象树结构的函数。但是这个树结构包含一个循环引用。 (注意:我需要在我的数据模型中使用这种循环,所以我不能改变它)。我重视这个对象是这样的范围:在angularjs中覆盖JSON.stringify

$scope.tree = myService.getTree(); //This return the circular structure 

然后我试图在我的html文件是这样显示的:

{{tree}} 

但是,当我尝试这样做,它给了我这个错误:

TypeError: Converting circular structure to JSON 

我知道当我叫{{树}}在我的html文件,angularjs呼吁JSON.stringify(树)对我来说。我的问题是,如何覆盖角度JSON.stringify上的行为。例如,如果我们可以告诉angular或JSON.stringify,如果它在对象树中检测到一个圆形并返回它到目前为止生成的json字符串(而不是抛出一个错误),则停止序列化对象树。

或者,我可以覆盖行为,不要为整个对象调用JSON.stringify,而是在访问它们时调用JSON.stringify或JSON.toString来获取对象树中的单个对象。 例如,如果我称之为:

{{tree.person.name}} 

然后将角只叫字符串化树对象,然后人对象。

+0

应阅读以下内容:http://stackoverflow.com/questions/10392293/stringify-convert-to-json-a-javascript-object-with-circular-reference – tymeJV

回答

0

尝试

$scope.tree = JSON.parse(myService.getTree())