Witam.
Potrzebuje propozycji, nakierowania na rozwiązanie pewnego "problemu". W systemie, który piszę mam dodawanie dokumentu i ten dokument ma swoje pozycje z ceną, ilością itp.
Chciałbym, aby uzytkownik, który kliknie na Dodaj przeszedł na osobny komponent WybierzTowar, zaznaczył towary, które chce mieć na dokumencie i wrócił do dokumentu, który będzie wyświetlał te wybrane pozycje. Przejście na komponent z towarami nie stwarza problemów. Kłopot zaczyna się z powrotem do tworzonego dokumentu.
Jak przesłać wybrane pozycje do komponentu z dokumentem?
Jak zapamiętać inne ustawienia dokumentu przed przejście do wyboru pozycji?
Modal niestety odpada, ponieważ nie działa to za dobrze na telefonach. Jakiś dropdown jest słabo wydajny przy dużej ilości towarów w bazie.
Wymiana danych pomiędzy komponentami w Angular
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Jastrzębie-Zdrój
- Postów: 2180
- Rejestracja: dni
- Ostatnio: dni
- Postów: 177
Możesz użyć serwisu, który przechowywałby aktualnie edytowany dokument. Serwisy w Angularze są singletonami, więc wstrzykując go do różnych komponentów masz cały czas tę samą instancję.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Jastrzębie-Zdrój
- Postów: 2180
A jeśli dokument zapisze lub anuluje to wystarczy, że ustawie go na null? Trzeba jakoś ten obiekt "wyzerować", żeby nie było głupot przy nowym dokumencie.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 177
Tak, musisz sam zadbać o to, aby w serwisie był poprawny dokument, lub go nie było.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 34
Przekaż go sobie do komponentu i edytuj, a z powrotem możesz sobie zrobić zdarzenie dotyczące edycji elementu wywoływane np. przez przycisk zapisz, które będzie Ci odświeżało dany element.
Przekazywanie do komponentu: https://angular.io/tutorial/toh-pt3
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Jastrzębie-Zdrój
- Postów: 2180
A jak zablokować ten komponent żeby można było wejść do wyboru towaru tylko z pozycji dodawania do dokumentu?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Jastrzębie-Zdrój
- Postów: 2180
Jeśli znajdzie się jakiś mądry i zobaczy jaki jest routing do tego komponentu to będzie sobie wchodził. Musiałbym przetestować co się stanie w takim przypadku, ale lepiej by było to zablokować.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 34
RouteGuard'a zrób sobie. Jak zaimplementujesz metodę CanActivate prawdopodobnie (nie sprawdzałem) masz możliwość sprawdzenia skąd dany request wychodzi więc możesz sprawdzić czy poprzedni komponent jest tym na którym masz przycisk do edycji.
RouteGuard: https://thinkster.io/tutorials/building-real-world-angular-2-apps/route-guards