Jaki jest najlepszy sposób na dołączenie zachowania do kolekcji Meteor?

W Meteor po pobraniu rekordu z bazy danych jest to tylko rekord. Więc jeśli mam kolekcję o nazwieDogs, adog może miećfur: 'brown' lubbreath: 'stinky', ale nie mabark() metoda.

Oczywiście mogłem stworzyć pewne funkcje, które oczekujądog jako argument, a następnie wykonaj na nim operacjedog. Mógłbym nawet zamknąć wszystkie te funkcje w jednym konstruktorze. Nie szaleję za tym podejściem, ale jeśli ktoś ma czysty i rozsądny sposób, by to zrobić, to wszyscy mam uszy.

Inną myślą, którą miałem, było owinięciedog wBackbone.Model. To może być interesujące, jakfetch isave można na nowo zdefiniowaćfind iinsert lubupdatei możesz tam zdefiniować wszystkie swoje zachowania, ale przeczytałem, że tego typu rzeczy są na ogół odradzane.

Czy jest odpowiedni sposób, aby to zrobić? Czy jestMeteor.Model oficjalnie w pracach? Jak inni rozwiązują ten problem?

Edytować

Dla osób przychodzących na to pytanie ponad rok po przyjęciu odpowiedzi: w czasie tej edycji używamPakiet minimongoid mrt Exygy, który ma pewne ulepszeniawersja haihappen jest to wspomniane w blogu powiązanym z zaakceptowaną odpowiedzią.

Obecnie uczestniczę w repozytorium, aby wynik był bardziej podobny do relacji. Mam nadzieję, że inni skorzystają z tego i będą skłonni wnieść użyteczną funkcjonalność.

Edytować

Kolejna odpowiedź sugerowała użycietransform właściwość podczas tworzenia kolekcji. Chociaż zdecydowanie wolę coś, czego sam nie potrzebuję, ta funkcja dodaje wiele możliwości i mam nadzieję, że wszystkie zespoły, które pracują nad ORM dla Meteor, skorzystają z tego w rdzeniu .

Oto post na blogu wyjaśniając, jak korzystać ztransform własność.

Również,minimongoid jest teraz dostępny jako pakiet Meteori nadal go używam. Posiada wsparcie dla walidacji i deklarowania relacji. Dodałem także pewną funkcjonalność do tego pakietu, więc jeśli płyta ma wiele elementów,board.pieces().create(attributes) utrzyma nowepiece nagrać z podanymattributes i automatycznie skojarzy się zboard. Spośród różnych rozwiązań, które widziałem, wydaje się to być najbardziej wszechstronne.

questionAnswers(6)

yourAnswerToTheQuestion