![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 266 Pomógł: 20 Dołączył: 15.11.2006 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jak rozwiazujecie uruchamianie akcji w implementacji innej akcji? Dodam, iz u mnie kazda akcja posiada swoj widok. Zatem w akcji1, w ktorej musze uruchomic inna akcje2 musialbym jakos przypisac do zmiennej - widok akcji2, a potem przeslac go w zmiennej akcji1 (juz plus akcja2) to widoku akcji1 ? Nie wiem jak do tego podejsc. Chodzi o to, ze mam dynamicznie tworzona liste danych w akcji2, a akcja1 tez chce z nich korzystac +dodac odp. swoje funkcjonalnosci. Schemat: Akcja_showItems->Uruchom akcje main->akcja main wykonuje swoj kod->uruchom szablon akcji_main->przekaz go w zmiennej do akcj showItems->uruchom szablon akcji_showItems przekazuja do niego rowniez dane z akcji main.. Jak do tego podejsc ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 72 Pomógł: 1 Dołączył: 2.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cysiaczek:
Bardzo mi się spodobał twój pomysł i chce wdrożyć do mojego programiku, który korzysta z Frameworka CodeIgniter wraz biblioteką XAJAX. Jestem w fazie sklejania wszystkich bibliotek i budowania interfejsu dla użytkownika. Brakuje mi sposobu na przekazywanie różnych danych pomiędzy operacjami wykonywanymi przez użytkownika. Zrozumiałem w ten sposób, że każda akcja (w CI jest to klasa typu kontroler) tworzy obiekt typu actionData w swoim konstruktorze.
Później dowolna metoda w akcji może dodać swoje jakieś dane np. dane do widoku , jakieś innej akcji lub swoją instancje obiektu, która to będzie się mieścić w obiekcie typu actionData pod nazwa $akcja, $metoda. Następna metoda chcąc pobrać dane wystarczy że wpisze nazwę akcji i jej metodę ta zwróci wynik albo tekst lub obiekt to co akcja poprzednio wrzuciła. Problemem będzie, że akcja pobierająca dane będzie musiała wiedzieć jakie typu dane są pobierane oraz jak się nazywa (w sumie to nie problem). Ja nie bardzo kapuję jak może działać rozwiązanie sington w twoim kodzie (domyślam, że stosujesz ten wzorzec)
Co on robi. Ja wiem że wzorzec singleton zapewnia wszędzie ten sam obiekt zapobiegając tworzenia drugiego obiektu tej samej klasy (jestem laikiem więc mogę się mylić). Może tak. Nie mogę sobie wyobrazić żeby przy następnych wywołaniach stron dawał ten sam obiekt (referencje obiektu, który na poprzedniej stronie został stworzony). Bo zapewniony będzie jeden obiekt do końca wykonania kodu. Tak więc jeśli zostanie przeładowana strona (wybrana jakaś akcja przez użytkownika) to wzorzec singleton stworzy nowy obiekt. Ponieważ nie będzie pamiętać obiektu. Pisze dlatego o tym wzorcu bo myślę, że w twoim kodzie jest coś zaimplementowane
Że on pobiera sobie instancje obiektu z sesji lub bazy danych albo Cook lub jest przekazywane przez javaScript. Bardzo chcę poznać jak sklejacie w całość wszystko. Ja robiłem dotychczas że przekazywałem przez zmienne do konkretnej funkcji czy metody. To tworzyło straszne problemy i strasznie wiązało pomiędzy sobą te funkcje. Zmiana czegoś w jednej metodzie prowadziło do zmian wszędzie tam gdzie były powiązane z tą metodą. Co strasznie komplikowało kod. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 21:27 |