2012-05-01 13 views
20

Czy można usunąć model według identyfikatora? Dokumentacja mówi, że musisz przekazać model, aby go usunąć.Usunąć model szkieletu według id?

Muszę najpierw pobrać model, a następnie go usunąć? Nie mogę po prostu usunąć go według identyfikatora?

Odpowiedz

26

Czy masz na myśli usunięcie modelu z kolekcji? Patrząc na dokumenty, wydaje się, że musisz podać prawdziwy model, ale kod źródłowy sugeruje, że możesz po prostu przekazać model id lub model cid i wszystkie powyższe powinny działać (jak również jako tablice wszystkich powyższych).

Więc wszystkie poniższe kryteria powinny być równoważne:

collection.remove(myModel); 
collection.remove(myModel.id); 
collection.remove(myModel.cid); 
collection.remove([myModel]); 

Nie testowałem tego jednak.

+0

ah, ok, fajne dzięki za info – fancy

+3

Tak, patrząc na Backbone źródła v1.0.0, funkcja remove() pierwsza dostaje model z kolekcji za pomocą funkcji get(), która przyjmuje model, id lub cid. – jackocnr

+1

Im więcej go używam, tym bardziej stwierdzam, że kręgosłup jest słabo udokumentowany. –

1

Właśnie natknąłem się na ten post (nie pytaj mnie jak), identyfikator model jest domyślnie coś jak c1 lub c23. Jeśli chcesz usunąć modelu przez ID z kolekcji, a następnie po prostu dostać model z kolekcji przy użyciu:

myCollection.get('c1');

ten powróci model z ID c1, jeśli chcesz, aby natychmiast go usunąć, po prostu przekazujesz zwrócony model do funkcji kolekcji remove().

myCollection.remove(myCollection.get('c1'));

+1

Należy zauważyć, że omawiane tutaj "domyślne" to 'cid', a nie' id'. Modele nie mają domyślnie identyfikatora. – nrabinowitz

Powiązane problemy