![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 77 Dołączył: 10.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich
Zwracam się z proźbą o pomoc przy wytłumaczeniu (może być czysta teoria, ale i przykładami nie wzgardzę) kilku kwestii odnośnie używania BB.js oraz SF2. Jeżeli chodzi o moje doświaddczenie i stopień znajomości SF2 to myślę iż obie są na dość dobrym poziomie, niestety nie mogę tego powiedzieć o Backbone... Poniżej załączam kilka pytań wraz z opisem problemu i liczę na choć szczątkową pomoc. Na obecną chwilę, skrypt który poddaję (a właściwie mam to w zamiarze) refactoringowi operuje na formularzach SF2 (formbuilder), mysql oraz pseudo kodzie w jQuery. Wygląda to mniej więcej tak iż w danym miejscu na stronie mam blok, do którego jest ładowana zawartość pobrana przez AJAXowe zapytanie w/w pseudo skryptu. Ładowany content jest wyrenderowanym formularzem i jest zwracany w formie html. Każdy z formularzy (tak, jest ich kilka) zawiera z góry nie określoną ilość pól (text, textarea, select2) oraz dwa buttony - "Pomiń" i "Aktualizuj". - button "Pomiń" ma za zadanie odpytać akcję w controllerze o następny formularz i wstawić go na miejsce poprzedniego - obecnego. W przypadku gdy był to ostatni formularz, przeładować stronę. - button "Aktualizuj" ma za zadanie wysłać formularz Ajaxem (wykonuje się dziwna logika, zapis do baz danych, cache etc.), po czym ma wykonać akcję "Pomiń" - załadować następny formularz. Na obecną chwilę działa to i to działa całkiem znośnie. Problem pojawia się w momencie gdy chcę wstawić zamiast gołego jQuery jakiś framework - tutaj Backbone. Poczytałem, poszperałem i znalazłem informacje o tym jak zbudować kolekcję elementów, nadać im logikę itp. Problem #1 W jaki sposób dostarczać formularz do backbone - w formie html (jak poprzednio?), json z informacjami jakie pola, jakie nazwy i jakie atrybuty, czy też...? Problem #2 Tyle o ile budowanie kolekcji wszystkich formularzy nie sprawia problemu, to jak ja zdarzenie $.ready() załadować tylko i wyłącznie pierwszy, nadać obsługę buttona (jak w przypadku w/w skryptu jquery) "Pomiń" i "Zapisz" Problem #3 Czy buttony "Pomiń" i "Zapisz" powinny przychodzić wraz z formularzem, czy to raczej Backbone powinien się zająć "dołączeniem" ich do formularza jak i nadaniem im logiki Na obecną chwilę to chyba wszystko, bardzo miło było by, aby ktoś zaznajomiony z podobnym tematem zabrałby głos, liczę na pomoc teoretyczną, aczkolwiek jak już pisałem - praktyczny kawałek kodu też byłby mile widziany. Dzięki i pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Problem #1 W jaki sposób dostarczać formularz do backbone - w formie html (jak poprzednio?), json z informacjami jakie pola, jakie nazwy i jakie atrybuty, czy też...? Jako json, a html rendruj po stronie backbona. Cytat Problem #3 Czy buttony "Pomiń" i "Zapisz" powinny przychodzić wraz z formularzem, czy to raczej Backbone powinien się zająć "dołączeniem" ich do formularza jak i nadaniem im logiki Nie widzę problemu aby informacja na temat tych przycisków była wraz z polami formularza przesyłana w jsonie, a po stronie backbona to wszystko było odpowiednio obrabiane. Cytat Problem #2 Tyle o ile budowanie kolekcji wszystkich formularzy nie sprawia problemu, to jak ja zdarzenie $.ready() załadować tylko i wyłącznie pierwszy, nadać obsługę buttona (jak w przypadku w/w skryptu jquery) "Pomiń" i "Zapisz" Nie bardzo rozumiem o co ci w tym pytaniu chodzi. Generalnie to wyobraź sobie że backbon jest czymś w rodzaju twiga, czy innego systemu templatek. Twig nie bierze danych z kosmosu, ty mu te dane przesyłasz i na poziomie twiga tymi danymi manipulujesz (pętle, warunki etc). Więc tak samo potraktuj backbona, z tym że ty danych do backbona nie przesyłasz, a on te dane pobiera sobie sam (poprzez restowe requesty). Nie wiem jak bym mógł ci to inaczej wytłumaczyć (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 428 Pomógł: 77 Dołączył: 10.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki za odpowiedź
co do problemu #2... Cóż postaram się jaśniej: Response zwraca mi dane w formacie JSON odnośnie formularza "n", jest on renderowany przez BB i załączony system templatek i... wszystko ładnie i pięknie, teraz pytanie - jak dodać akcję do przycisków, tak aby po ich naciśnięciu został wysłany request o formularz n+1 itd...? (miej na uwadze iż akcja "Pomiń" nie ustawi formularza n jako zrobionego, czytaj - odpytanie tego samego requesta zwróci dokładnie ten sam formularz - dołączenie parametrów?). Nie ukrywam że na razie ciężko widzę zaznajomienie się z "nową" technologią... Ten post edytował kpt_lucek 18.10.2014, 11:45:43 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nadal nie jestem pewien czy dobrze rozumiem, ale jeżeli chodzi ci o eventy, no to nic prostszego. Do swojego widoku możesz przypisać x eventów, które wywołają odpowiednie funkcje/metody. http://backbonejs.org/#Events eventy możesz podpinać pod różne rzeczy, te znane z jquery (click, mouseover, submit etc), lub stworzyć jakieś swoje. W widoku podpina się zdarzenia mniej wiecej tak:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:52 |