/ / KendoTreeView z BreezeJS zgłasza błąd „Przekroczono maksymalny rozmiar stosu połączeń” - angularjs, kendo-ui, breeze

KendoTreeView z BreezeJS zgłasza błąd "Maximum call stack size exceeded" - angularjs, kendo-ui, breeze

Używanie jednostek BreezeJS i próba wyświetleniaużywają KendoTreeView z KendoUI. Widok drzewa zgłasza ten błąd, prawdopodobnie z powodu odniesień kołowych. Istnieje wiele cykli w obiektach bryzy, najbardziej oczywistym jest entity.entityAspect.entity, a także model może zawierać okrągłe refs (np. Customer-> Orders-> Customer). Jak mogę skonfigurować KendoTreeView, aby przetwarzał tylko określone właściwości nawigacji i ignorował te, które prowadzą do okrągłych refów?

Zdaję sobie sprawę, że mogę przechodzić przez elementy izbuduj pomocniczą tablicę do celów wyświetlania. Mam jednak nadzieję, że jeśli to możliwe, połączę się bezpośrednio z jednostkami, zamiast próbować ręcznie synchronizować drzewo z tablicą encji.

FWIW Używam wiązania kątowego itp. (Nie jestem pewien, czy w tym przypadku ma to znaczenie).

Odpowiedzi:

0 dla odpowiedzi № 1

Jest to standardowy problem z serializacją kodu JavaScript. Nie jest to problem specyficzny dla Breeze.

Odniesienia kołowe są naturalną cechąmodele jednostek. Rozważmy właściwość Customer.Orders, która zwraca zamówienia klienta, a każde zamówienie ma właściwość nawigacji Order.Customer, aby wrócić do swojego macierzystego klienta. Należy tego oczekiwać i spowoduje to błąd podobny do tego, którego doświadczyłeś serializuj taki wykres, chyba że wyraźnie zarządzasz serializacją.

Zobacz ten link: http://www.breezejs.com/documentation/knockout-circular-references

lub ten post: Maksymalny stos wywołań wymuszony za pomocą siatki KendoUI i breeze.js