2013-06-27 3 views
0

불행히도 순환 참조가 들어있는 Javascript에서 트리 구조를 만들었습니다. 객체에는 자식 배열이 있지만 자식은 삭제를 위해 부모에 대한 참조가 필요합니다.

트리 구조로 인해 각도 변화가 깊은 시계를 사용하여 트리의 변경 사항을 감지합니다. (이렇게하면 트리의 모든 노드를 보지 않아도됩니다.) 그러나 순환 참조는 Angular $ watch 구조에서 문제를 일으 킵니다. 부모님에 대한 언급없이 부모/자녀 문제를 처리 할 수있는 방법이 없습니다. 이는 신청서의 일부 설계 요구 사항 때문입니다.

내가 고려한 한 가지는 프로토 타입으로 상위 링크를 저장하는 것입니다. 내 질문 - Angular deep $ watch는 사용자 정의 객체의 프로토 타입 멤버를 봅니까? 이것에 대한 설정이 있나요?

감사합니다.

답변

0

다른 가능한 해결책 : 각 깊은 개체 비교는 $로 시작하는 함수와 필드를 무시합니다.

http://docs.angularjs.org/api/angular.equals

그래서 분명히 각도는 자신의 메타 데이터를 저장하는 $를 사용하지만 OBJ. $의 my_parent 같은 좋은해야한다. 또는 함수에 모든 것을 할당 할 수 있습니다 ... obj.parent = function() {return other_obj; }

+0

'$'를 사용하면 여러 가지 이유로 기대했던대로 작동하지 않지만 작동하는 함수를 사용했습니다. 저는 총알을 물고 일반 오브젝트를 사용하는 대신 클래스를 작성해야했습니다. 이것은 어쨌든해야 할 일이었습니다 ... 나중에 리팩토링을 기대하면서 신속한 해결 방법을 기대했습니다. –