2016-07-06 13 views
0

私はオブジェクトツリー構造を返す関数を持っています。しかし、このツリー構造には循環参照が含まれています。 (注:データモデルでこの循環性が必要なので、変更することはできません)。私はこのような範囲にこのオブジェクトを添付:anglejsの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の動作をどのように上書きするかです。たとえば、object tree内の循環性を検出し、これまでに生成したjson文字列を返した場合(エラーを返すのではなく)、オブジェクトツリーの直列化を停止するように、angleまたはJSON.stringifyに伝えることができます。

または、オブジェクト全体の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())