2012-09-21 13 views
7

I zostały z wykorzystaniem relacyjnych szkieletowe (https://github.com/PaulUithol/Backbone-relational), aby zbudować mój wniosek, bo mam model (pokój) z dużą ilością innych modeli dołączonych:Backbone relacyjny - nie więcej niż jedną instancję ,,,

  • Pokój ma wiele Komentarz
  • pokoju należy do Położenie

Jak widać w this issue ciśgle Błąd

Error: Cannot instantiate more than one Backbone.RelationalModel with the same id per type

Zawsze, gdy zmienię Wyświetl lub ponownie załaduję kolekcję.

Teraz wiem, że istnieje wątek here, w którym sugerują użycie findOrCreate, ale nie mam dostępu do modeli indywidualnie, ale zamiast tego używam Collection.fetch. Czy istnieje sposób obejścia tego problemu?

+0

miałem ten problem ... Nie knnow dlaczego ale Usunąłem odwrotna relacja i rozwiązać problem, przez chwilę ... –

+0

Ahh. Nie skonfigurować relacje odwrotne ... – GTF

+0

Spójrz na to: http://stackoverflow.com/questions/12224122/backbone-relational-cannot-instantiate-two-relationalmodel-objects#answer- 12224192 – macool

Odpowiedz

0

miałem podobny problem i to się stało, że muszę zainicjować modelu z funkcją:

model: -> 

    return new Project.Models.ModelName() 

Kiedy require_tree. w pliku application.js pliki modeli są ładowane później niż pliki kolekcji (kolejność alfabetyczna). Ustawienie modelu z funkcją czeka, aż aplikacja zostanie wykonana.

+0

Nie jestem do końca pewien, co masz na myśli ... Masz na myśli przed użyciem 'Collection.fetch()', powinienem najpierw utworzyć egzemplarz modelu? – GTF

1

Miałem podobny problem, naprawiłem go, przełączając się na skojarzenia kręgosłupa.

https://github.com/dhruvaray/backbone-associations

Interfejs jest prawie dokładnie to samo z tylko kilka drobnych różnic więc przenoszenie powinno być dość proste.

2

z relacją kręgosłupa można uzyskać lub utworzyć obiekt z magazynu relacyjnego. Użyj tego do utworzenia obiektów relacyjnych:

this.model = someModel.findOrCreate({id: 123}) 

Dzięki temu utworzy nowy obiekt lub otrzyma istniejący obiekt z magazynu relacyjnego.

http://backbonerelational.org/#RelationalModel-findOrCreate

+1

To działałoby, ale kolekcje pobierają dynamicznie modele. – GTF