#Angular2 – POST

Ostatnio mam bardzo mało czasu, ze względu na kończący się rok szkolny i zbliżającą się maturę. Ten post piszę więc na początku tygodnia, a zostanie on opublikowany pod koniec. API jeszcze nie jest ukończone w 100%, ale chyba najważniejsze opcje już działają. Zostały już tylko detale do dopracowania, więc powinno już pójść szybko.

W API napisałem już kontroler zleceń, który wcześniej zostawiłem sobie na później. Strasznie ciężko było mi się zebrać, żeby go dokończyć. Przetestowałem go już, czy działa, ale pewnie jeszcze coś wyjdzie przy pisaniu frontendu. Został już tylko kontroler użytkownika i walidacja i API będzie ukończone w 100%.

Udało mi się stworzyć widok dodawania dokumentów. Działa jak należy, tylko muszę się zająć walidacja formularza, żeby móc wyświetlać dla użytkownika, co źle wprowadził i żeby nie rzucało co chwilę błędami w konsoli.

Przy tworzeniu formularza, musiałem użyć jQuery i teraz już wiem jak to zrobić. Wcześniej próbowałem normalnie wywołać kod jQuery w ngInit np., ale jedyne co otrzymałem, to błędy. Rozwiązanie jest bardzo proste. Wystarczy zadeklarować zmienną „$”, z której korzysta jQuery:

declare var $: any;

i już mogę używać jQuery w plikach TS.

Musiałem również stworzyć pole, w którym mogę wyszukać klientów, oraz dodawać nowych. Miałem je juz wcześniej w widoku pojedynczego dokumentu, więc skopiowałem jedynie jego kod. Nie jest ono jeszcze skończone, można już wyszukiwać i wybierać klienta, ale nie ma jeszcze możliwości dodania. Będzie ono wykorzystywane chyba w każdym miejscu, gdzie będą dodawane jakieś rekordy do bazy, więc stworzyłem dla niego nowy komponent.

Jest to pole, w którym wyświetlają się wszyscy klienci, a na górze znajduje się wyszukiwarka. Jeśli klikniemy pole klienta, to komponent za pomocą EventEmitter’a zwraca id wybranego klienta. Tak wygląda to w praktyce:

ezgif-1-089942f82b

A tak prezentuje się widok dodawania dokumentu w całości:

localhost-4200-documents-add(Laptop with HiDPI screen)

Przeglądając dokumentację Semantic-UI, znalazłem jeszcze funkcję, która sam napisałem. Mianowicie obsługę checkboxów. Zastanawiam się, czy nie przerzucić ich obsługi z Angulara na Semantic, ponieważ wtedy zmniejszyłaby się ilość kodu, w komponencie. Sam się dziwię, że na to wcześniej nie trafiłem.

Dodawanie już działa, ale mam jeszcze jeden problem. Kiedy dodam dokument, to wypadałoby gdzieś przekierować użytkownika. Najlepiej do utworzonego właśnie dokumentu, ale nie wiem jakie id zostanie mu przydzielone. Chyba jedyną możliwą opcją, jest wysyłanie id w odpowiedzi na wysłanie danych do API. To jest chyba jedyne sensowne rozwiązanie, ale zostawię sobie to na później, na razie przekierowuję do widoku wszystkich dokumentów.

To tyle na dziś, oczywiście nowe commity już znajdują się na GitHubie. W przyszłym tygodniu pojawią się 2 bardzo krótkie posty, w sumie tylko po to, żeby wyrobić te 2 posty tygodniowo, bo nie będę miał czasu na projekt.

Pozdrawiam!
MTK

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑