2013-01-04 12 views
7

Mam problem ze zrozumieniem relacji między kontrolerami i trasami w aplikacji Ember.Zrozumienie zależności między kontrolerami i trasami w Emberzie

Rozpoczęłam od dość prostego testu spajków, aby ocenić Embera, a im głębiej w to wchodzę, tym bardziej widzę, że moje trasy wypełniają się tym, co przeszedłbym przez kontroler. odpowiedzialność, np. działania, podłączanie modeli, a ostatecznie wysyłanie do widoku w celu wyrenderowania szablonu.

Kontrolery są puste i wydają się być tylko symbolem zastępczym dla niektórych wymagań automatycznego mapowania.

Czy brakuje mi tu podstawowej rzeczy - pochodzącej z perspektywy Railsów i stosującej (być może błędnie) "ścieżkę" do Embera Oczekiwałem, że moje trasy definiują stany reprezentowane przez adresy URL, które byłyby mapowane do kontrolera "akcja".

Wszelkie wskazówki będą mile widziane.

+4

Czy widzisz najnowszą dokumentację? Chociaż nie są one w pełni wykonane, myślę, że da ci to kilka wskazówek. http://emberjs.com/guides/routing/ http://emberjs.com/guides/controllers/ –

+0

Hej, nie - zaktualizowali je, odkąd ostatni raz wyglądałem, wspaniałe dzięki. Przeczytam je i zobaczę, czy to pomoże :) –

+1

Tak, myślę, że przychodząc ze świata Railsów, nie powinno to być zbyt trudne do zrozumienia ... w końcu Yehuda pracuje nad obydwoma^^ –

Odpowiedz

2

Podczas gdy klasy modeli obsługują obiekty i ich stan, kontroler obsługuje stan samej aplikacji.

Bardzo prostym przypadkiem użycia może być to, że masz dwa stany dla formularza: readonlyMode i modifyMode. To zdecydowanie nie należy do modelu, w którym zdefiniowane są rzeczywiste obiekty. To tylko stan twojej aplikacji.

Jeśli kontroler mówi, że stan jest tylko do odczytu, widok spowoduje wyłączenie wszystkich pól wejściowych. Odwrotna strona dla modifyMode.

Ale zgadzam się, że nie zawsze łatwo jest zdecydować, gdzie ją umieścić. Na tym etapie MVC zajmuje się pojęciami. Konieczność umieszczenia go w jakiejś zasadzie, powiedziałbym:

  • wszystko, co reprezentuje trwałe dane (przechowywane w jakiejś pamięci/DB) jest zazwyczaj częścią modelu.
  • wszystko, co sprawi, że twoja aplikacja stanie się stateful => kontrolery.
+1

Dzięki - mam solidne zrozumienie odpowiedzialności modeli w wzorcach MVC, problem z ember polega na tym, że wprowadza pojęcie routera, który z mojej perspektywy wydaje się zawierać wiele zachowań, których oczekiwałbym znaleźć w kontrolerach. Rozdzielenie obaw między kontrolerami i trasami zaczyna być coraz jaśniejsze, gdy przechodzę przez ten proces. –

+0

Prawda. Moim zdaniem stary interfejs API routera (przed 1.0 pre3) kusił twórcę, aby włożył dużo w routing. Ale nowy interfejs API, który został wydany zaledwie kilka dni temu, ma znacznie czystsze podejście. Właśnie przepisałem składnik aplikacji, aby używać nowego interfejsu API. Wygląda teraz o wiele czystszy i lepiej oddzielony. –

+0

Po prostu zaktualizowaliśmy nasz router do nowego stylu - całkowicie zgadzam się, zmiany w pre3 do routera sprawiają, że cała dyskusja jest nieco dyskusyjna, teraz jest o wiele jaśniejsza. –

Powiązane problemy