2014-09-02 35 views
5

jestem stara się zrozumieć różne rodzaje powiązań danych w ExtJS i nie mogłem rysunek to:ExtJS 5 hasMany vs field.reference

Jaka jest różnica między „relacjach hasMany” i „field.reference "przy definiowaniu asocjacji w dwóch modelach?

Kiedy należy używać "hasMany" i kiedy jest "reference" lepiej?

Na przykład, jeśli chcę zdefiniować wiele adresów e-mail dla jednego użytkownika, jaka jest najlepsza praktyka, aby móc korzystać z modelu e-mail w innym miejscu?

Jestem świadomy, że mam 3 pytania, ale te wydają się należeć do siebie.

Dzięki!

+0

Powiedziałbym, że Many nie przetrwa do ExtJS 6. – Alexander

+0

Jestem w tej samej sytuacji. W tej chwili maMany nie działa poprawnie w ExtJS 5.0.1 –

+1

@benoror z pewnością były problemy z nim, które kontynuowano w 5.1.1 – Thomas

Odpowiedz

8

Jednym z najlepszych na awarie to widziałem tu:

http://moduscreate.com/associations-in-ext-js-5/

To idzie w wielu szczegółach, a konkretnie odnosi swoje trzecie pytanie dotyczące adresów e-mail - ponieważ stowarzyszenie jest teraz zdefiniowane w modelu podrzędnym, a nie w modelu nadrzędnym, musisz mieć inny model e-mail, jeśli chcesz dołączyć go do innego rodzica, tj. klasę CustomerEmail do dołączenia do klienta i klasę AdminEmail do dołączenia do administratora.

Jest nieco szczegółów o powód zmiany tutaj:

http://www.sencha.com/blog/deep-dive-into-ext-js-5-data

Deklarowanie stowarzyszenia to kolejny obszar, w Ext JS 5, gdzie mamy zmniejszone wymagania standardowy kod. W poprzednich wersjach ma wiele konfiguracji hasOne i belongsTo wymaga ręcznego zapisywania symetrycznych deklaracji po obu "stronach" skojarzenia. Tak już nie jest. Możesz zadeklarować powiązanie w jednej z powiązanych klas (chociaż zwykle po stronie "wiele").

+1

Po prostu natknąłem się na ten zasób Modus Create. Jest całkiem świetny. – Thomas