Opis
Angular jest frameworkiem napisanym w języku TypeScript. Służy do tworzenia złożonych, nowoczesnych i wydajnych aplikacji działających po stronie klienta. Jest rozwijany przez Google i cieszy się dużym uznaniem projektantów aplikacji: ułatwia tworzenie poprawnego, czystego kodu, umożliwia bezproblemowe testowanie, a praca programisty z tym frameworkiem jest przyjemna, efektywna i satysfakcjonująca. Aby w pełni wykorzystać możliwości Angulara, koniecznie trzeba się zapoznać z architekturą jego aplikacji, a także z modułami, komponentami i powiązaniami danych.To kolejne wydanie popularnego przewodnika, będącego starannie przygotowanym połączeniem opisu architekturalnego, specyfikacji technicznej i praktycznych wskazówek. Pozwala na niemal natychmiastowe rozpoczęcie pracy w Angularze. Na początek czeka Cię zapoznanie się ze wzorcem MVC, z jego zaletami i zastosowaniem. Następnie zaczniesz pisać funkcjonalne aplikacje – stopniowo będziesz przechodzić do coraz bardziej zaawansowanych i złożonych rozwiązań. Poszczególne przykłady zostały omówione w sposób jasny, zrozumiały i spójny. Dodatkowo w książce przedstawiono mnóstwo wskazówek i szczegółów, pozwalających na efektywną pracę i uzyskiwanie najlepszych efektów. Nie zabrakło także prezentacji najczęściej spotykanych problemów i metod ich rozwiązywania.W książce:dokładne omówienie wzorca MVCtworzenie złożonych i dynamicznych aplikacji w Angularzeużywanie narzędzi ng podczas tworzenia projektów w Angularzerozszerzanie i dostosowywanie frameworka Angularprowadzenie testów jednostkowych dla projektów w AngularzeDobre rozwiązanie dla aplikacji klienta? Z Angularem się uda! Spis treści: O autorzeO korektorze merytorycznymCzęść I ZaczynamyRozdział 1. Rozpoczęcie pracyCo powinieneś wiedzieć?Jaka jest struktura niniejszej książki?Część I. ZaczynamyCzęść II. Praca z AngularemCzęść III. Zaawansowane funkcje AngularaCzego nie znajdę w książce?Co jest potrzebne do programowania z użyciem Angulara?Jak skonfigurować środowisko programistyczne?Co zrobić w przypadku problemów podczas wykonywania przykładów?Co zrobić w sytuacji, gdy znajdę błąd w książce?Czy w książce znajdę wiele przykładów?Gdzie znajdę przykładowe fragmenty kodu?Jak mogę skontaktować się z autorem?PodsumowanieRozdział 2. Pierwsza aplikacja w AngularzePrzygotowanie środowiska programistycznegoInstalowanie Node.jsInstalowanie pakietu angular-cliInstalowanie edytora tekstuInstalowanie przeglądarki WWWUtworzenie i przygotowanie projektuUtworzenie projektuUruchamianie narzędzi programistycznychDodanie frameworka Angular do projektuUtworzenie danych modeluUtworzenie klasy listy rzeczy do zrobieniaWyświetlanie danych użytkownikowiUaktualnienie komponentuPolecenie importDekoratorKlasaNadawanie stylu elementom HTMLWyświetlenie listy rzeczy do zrobieniaUtworzenie dwukierunkowego mechanizmu dołączania danychFiltrowanie zadańDodawanie zadańWyświetlanie wykonanych zadańPodsumowanieRozdział 3. Umieszczenie Angulara w kontekścieSytuacje, w których Angular sprawdza się doskonaleAplikacje dwukierunkowe oraz w postaci pojedynczej stronyPorównanie Angulara z Reactem i Vue.jsWzorzec MVCModelKontroler (komponent)Dane widokuWidok (szablon)Usługi typu RESTfulNajczęstsze pułapki podczas stosowania wzorca MVCUmieszczenie logiki w nieodpowiednim miejscuPrzyjęcie formatu danych stosowanego w magazynie danychWystarczająca ilość wiedzy, aby wpaść w tarapatyPodsumowanieRozdział 4. Krótkie wprowadzenie do HTML i CSSUtworzenie przykładowego projektuJęzyk HTMLElement samozamykający sięAtrybutStosowanie atrybutu bez wartościCytowanie literałów w atrybucieTreść elementuStruktura dokumentuFramework BootstrapStosowanie podstawowych klas BootstrapUżycie klas kontekstuUżycie marginesu i dopełnieniaZmiana wielkości elementuUżycie frameworka Bootstrap do nadawania stylu tabeliUżycie frameworka Bootstrap do tworzenia formularzy HTMLUżycie frameworka Bootstrap do utworzenia układu opartego na siatceUtworzenie responsywnego układu opartego na siatceUtworzenie uproszczonego układu opartego na siatcePodsumowanieRozdział 5. Wprowadzenie do języków JavaScript i TypeScript część 1.Utworzenie przykładowego projektuPodstawowy sposób pracyUżywanie poleceńDefiniowanie i używanie funkcjiDefiniowanie funkcji z parametramiUżywanie parametrów domyślnych i resztowychDefiniowanie funkcji zwracającej wartośćUżywanie funkcji jako argumentu innej funkcjiUżywanie funkcji strzałkiUżywanie zmiennych i typówUżywanie zmiennej domknięciaUżywanie typów podstawowychPraca z wartością boolowskąPraca z ciągiem tekstowymUżywanie szablonu ciągu tekstowegoPraca z liczbamiUżywanie operatorów JavaScriptUżywanie konstrukcji warunkowychOperator równości kontra operator identycznościJawna konwersja typuKonwersja liczby na ciąg tekstowyKonwersja ciągu tekstowego na liczbęPraca z tablicąUżycie literału tablicyOdczyt i modyfikacja zawartości tablicyWyświetlenie zawartości tablicyUżywanie operatora rozwinięciaUżywanie wbudowanych metod przeznaczonych do pracy z tablicąPodsumowanieRozdział 6. Wprowadzenie do języków JavaScript i TypeScript część 2.Utworzenie przykładowego projektuPraca z obiektamiUżywanie literału obiektuUżywanie funkcji jako metodZdefiniowanie klasyZdefiniowanie właściwości getter i setter klasyUżywanie dziedziczenia klasPraca z modułami JavaScriptUtworzenie i stosowanie modułuZmiana nazwy importowanego modułuZaimportowanie wszystkich typów w moduleUżyteczne funkcje języka TypeScriptUżywanie adnotacji typuAdnotacja typu właściwości i zmiennychOkreślenie wielu typów lub dowolnego typuUżywanie krotkiUżywanie typów indeksowanychUżywanie modyfikatorów dostępuPodsumowanieRozdział 7. SportsStore rzeczywista aplikacjaUtworzenie przykładowego projektuInstalowanie dodatkowych pakietów npmDodawanie arkuszy stylów CSS do aplikacjiUtworzenie usługi sieciowej typu RESTfulUtworzenie pliku HTMLUtworzenie struktury katalogówUruchomienie przykładowej aplikacjiUruchomienie usługi sieciowej typu RESTfulPrzygotowanie funkcji projektu w AngularzeUaktualnienie komponentu głównegoUaktualnienie modułu głównegoAnaliza pliku typu bootstrapUtworzenie danych modeluUtworzenie klas modeluUtworzenie fikcyjnego źródła danychUtworzenie repozytorium modeluUtworzenie modułu funkcjonalnegoRozpoczęcie pracy nad utworzeniem sklepu internetowegoUtworzenie szablonu i komponentu sklepu internetowegoUtworzenie modułu funkcjonalnego dla sklepuUaktualnienie komponentu i modułu głównegoDodawanie funkcji związanych z produktemWyświetlanie szczegółów produktuDodawanie możliwości wyboru kategoriiDodawanie stronicowania produktówUtworzenie własnej dyrektywyPodsumowanieRozdział 8. SportsStore zamówienia i zakupyUtworzenie przykładowego projektuUtworzenie koszyka na zakupyUtworzenie modelu koszyka na zakupyUtworzenie komponentów podsumowania koszyka na zakupyIntegracja koszyka na zakupy ze sklepem internetowymZaimplementowanie routinguUtworzenie komponentów zawartości koszyka i procesu składania zamówieniaUtworzenie i zastosowanie konfiguracji routinguNawigacja po aplikacjiZabezpieczanie trasUkończenie funkcji obsługi zawartości koszykaPrzetwarzanie zamówieniaRozbudowa modeluUaktualnienie repozytorium i źródła danychUaktualnienie modułu modeluPobieranie szczegółów zamówieniaUżywanie usługi sieciowej typu RESTfulZastosowanie źródła danychPodsumowanieRozdział 9. SportsStore administrowanieUtworzenie przykładowej aplikacjiUtworzenie modułuKonfigurowanie systemu routinguNawigacja do administracyjnego adresu URLImplementowanie uwierzytelnianiaPoznajemy system uwierzytelnianiaRozbudowa źródła danychKonfigurowanie usługi uwierzytelnianiaWłączenie uwierzytelnianiaRozbudowa źródła danych i repozytoriówUtworzenie struktury funkcji administracyjnychUtworzenie komponentów w postaci miejsc zarezerwowanychPrzygotowanie wspólnej treści i modułu funkcjonalnegoZaimplementowanie funkcji obsługi produktuZaimplementowanie edytora produktuZaimplementowanie funkcji obsługi zamówieniaPodsumowanieRozdział 10. SportsStore wdrożenieUtworzenie przykładowej aplikacjiDodawanie funkcjonalności progresywnychInstalowanie pakietu PWABuforowanie danychReakcja na zmiany dotyczące połączenia z internetemPrzygotowanie aplikacji do wdrożeniaUtworzenie pliku danychUtworzenie serweraZmiana adresu URL usługi sieciowej w klasie repozytoriumZbudowanie i przetestowanie aplikacjiTestowanie funkcjonalności progresywnejUmieszczenie aplikacji SportsStore w kontenerzeInstalowanie narzędzia DockerPrzygotowanie aplikacjiUtworzenie konteneraUruchamianie aplikacjiPodsumowanieCzęść II Praca z AngularemRozdział 11. Poznajemy projekt i narzędzia AngularaUtworzenie nowego projektu w AngularzeStruktura projektu tworzonego w AngularzeKatalog kodu źródłowegoKatalog pakietówUżywanie narzędzi programistycznychProgramistyczny serwer HTTPProces kompilacjiPaczka aplikacjiPaczka skryptów typu polyfillsPaczka stylówStosowanie linteraSposób działania aplikacji zbudowanych z użyciem AngularaDokument HTMLPrzygotowanie aplikacjiModuł główny aplikacji zbudowanej z użyciem AngularaKomponent AngularaWyświetlanie treściProces kompilowania dla środowiska produkcyjnegoWcześniejsza kompilacjaWczytywanie zróżnicowaneUruchomienie produkcyjnej wersji aplikacjiRozpoczęcie programowania w Angularze z użyciem TypeScriptuUtworzenie modeluUtworzenie opisowej klasy modeluUtworzenie źródła danychUtworzenie repozytorium modeluUtworzenie komponentu i szablonuKonfiguracja modułu głównego AngularaPodsumowanieRozdział 12. Mechanizm dołączania danychUtworzenie przykładowego projektuJednokierunkowe dołączanie danychCel dla operacji dołączania danychDołączanie właściwościWyrażenie dołączania danychNawias kwadratowyElement HTMLUżywanie standardowego dołączania właściwości i atrybutuUżywanie standardowego dołączania właściwościUżywanie dołączania danych w postaci interpolacji ciągu tekstowegoUżywanie dołączania atrybutuPrzypisywanie klas i stylówUżywanie dołączania klasyPrzypisanie wszystkich klas elementu za pomocą standardowego dołączaniaPrzypisanie poszczególnych klas za pomocą specjalnego dołączania klasyPrzypisanie klasy za pomocą dyrektywy ngClassUżywanie dołączania styluPrzypisanie pojedynczej właściwości styluPrzypisywanie stylu za pomocą dyrektywy ngStyleUaktualnienie danych w aplikacjiPodsumowanieRozdział 13. Stosowanie wbudowanych dyrektywUtworzenie przykładowego projektuUżywanie wbudowanej dyrektywyUżywanie dyrektywy ngIfUżywanie dyrektywy ngSwitchUnikanie problemów z wartością w postaci literałuUżywanie dyrektywy ngForUżywanie innych zmiennych szablonuUżywanie wartości indexUżywanie wartości zmiennych odd i evenUżywanie właściwości first i lastMinimalizacja liczby operacji elementuUżywanie dyrektywy ngTemplateOutletDostarczanie danych kontekstuOgraniczenia jednokierunkowego dołączania danychUżywanie wyrażeń idempotentnychKontekst wyrażeniaPodsumowanieRozdział 14. Używanie zdarzeń i formularzyUtworzenie przykładowego projektuImportowanie modułu obsługi formularzyPrzygotowanie komponentu i szablonuUżywanie dołączania zdarzeniaUżywanie danych zdarzeniaUżywanie zmiennej odwołania w szablonieUżywanie dwukierunkowego dołączania danychUżywanie dyrektywy ngModelPraca z formularzem HTMLDodawanie formularza do przykładowej aplikacjiDodawanie weryfikacji danych formularzaNadawanie stylu elementom za pomocą klas weryfikacji danychWyświetlanie komunikatów weryfikacji danych na poziomie polaUżywanie komponentu do wyświetlania komunikatów weryfikacji danychWeryfikacja danych całego formularzaWyświetlanie komunikatów podsumowania weryfikacji danychWyłączenie przycisku wysyłającego formularzUżywanie formularza opartego na modeluWłączenie funkcji tworzenia formularza opartego na modeluZdefiniowanie klas modelu formularzaUżywanie modelu do weryfikacji danychGenerowanie elementów na podstawie modeluUtworzenie własnych reguł weryfikacji formularzaZastosowanie własnej reguły weryfikacjiPodsumowanieRozdział 15. Tworzenie dyrektywy atrybutuUtworzenie przykładowego projektuUtworzenie prostej dyrektywy atrybutuZastosowanie własnej dyrektywyUzyskanie w dyrektywie dostępu do danych aplikacjiOdczyt atrybutów elementu HTMLUżywanie jednego atrybutu elementu HTMLUtworzenie właściwości dołączania danych wejściowychReagowanie na zmianę właściwości danych wejściowychUtworzenie własnego zdarzeniaDołączanie do własnego zdarzeniaUtworzenie operacji dołączania danych w elemencie HTMLUżywanie dwukierunkowego dołączania danych w elemencie HTMLWyeksportowanie dyrektywy do użycia w zmiennej szablonuPodsumowanieRozdział 16. Tworzenie dyrektywy strukturalnejUtworzenie przykładowego projektuUtworzenie prostej dyrektywy strukturalnejImplementowanie klasy dyrektywy strukturalnejWłączanie dyrektywy strukturalnejUżywanie zwięzłej składni dyrektywy strukturalnejUtworzenie iteracyjnej dyrektywy strukturalnejDostarczanie dodatkowych danych kontekstuUżywanie zwięzłej składni dyrektywy strukturalnejZmiany danych na poziomie właściwościZmiany danych na poziomie kolekcjiMonitorowanie widokówPobieranie treści elementu HTMLWykonywanie zapytań do wielu elementów potomnych w treściOtrzymywanie powiadomień o zmianie zapytaniaPodsumowanieRozdział 17. Poznajemy komponentUtworzenie przykładowego projektuStrukturyzacja aplikacji z użyciem komponentówUtworzenie nowych komponentówPoznajemy nową strukturę aplikacjiDefiniowanie szablonuDefiniowanie zewnętrznego szablonuUżywanie dołączania danych w szablonie komponentuUżywanie właściwości danych wejściowych do koordynacji między komponentamiUżywanie dyrektyw w szablonie komponentu potomnegoUżywanie właściwości danych wyjściowych do koordynacji między komponentamiProjekcja treści elementu HTMLZakończenie restrukturyzacji komponentu głównegoUżywanie stylów komponentuDefiniowanie zewnętrznych stylów komponentuUżywanie zaawansowanych funkcji stylówUstawienia hermetyzacji widokuUżywanie selektorów CSS funkcji shadow DOMDopasowanie elementu HTML stosującego komponentDopasowanie elementów nadrzędnych elementu HTML stosującego komponentUmieszczenie stylu w szablonie komponentu potomnegoPobieranie treści szablonuPodsumowanieRozdział 18. Tworzenie i używanie potokuUtworzenie przykładowego projektuPoznajemy potokUtworzenie własnego potokuRejestrowanie własnego potokuZastosowanie własnego potokuŁączenie potokówUtworzenie potoku nieczystegoUżywanie wbudowanych potokówFormatowanie wartości liczbowychFormatowanie wartości walutowychFormatowanie wartości procentowychFormatowanie wartości daty i godzinyZmiana wielkości znaków ciągu tekstowegoSerializowanie danych jako JSONPodział danych tablicyFormatowanie par klucz wartośćPobieranie wartościGenerowanie liczby mnogiej dla pewnej wartościPodsumowanieRozdział 19. Poznajemy usługęUtworzenie przykładowego projektuPoznajemy problem związany z przekazywaniem obiektówPrezentacja problemuWykorzystanie mechanizmu wstrzykiwania zależności do rozprowadzania obiektu jako usługiPrzygotowanie usługiPrzygotowanie komponentów zależnychRejestrowanie usługiPrzegląd zmian wprowadzonych przez mechanizm wstrzykiwania zależnościZadeklarowanie zależności w innych elementach konstrukcyjnychZadeklarowanie zależności w potokuZadeklarowanie zależności w dyrektywieProblem izolacji testuIzolowanie komponentów za pomocą usług i mechanizmu wstrzykiwania zależnościPrzygotowanie usługZarejestrowanie usługPrzygotowanie komponentu zależnegoDokończenie zastosowania usług w aplikacjiUaktualnienie komponentu głównego i szablonuUaktualnianie komponentów potomnychPodsumowanieRozdział 20. Poznajemy dostawcę usługiUtworzenie przykładowego projektuUżywanie dostawcy usługiUżywanie dostawcy klasyTokenUżywanie tokenówWłaściwość useClassSpełnianie zależności za pomocą wielu obiektówUżywanie dostawcy wartościUżywanie dostawcy fabrykiUżywanie dostawcy istniejącej usługiUżywanie dostawcy lokalnegoOgraniczenia pojedynczego obiektu usługiUtworzenie dostawcy lokalnego w komponencieAlternatywa dla dostawcyUtworzenie dostawcy lokalnego dla wszystkich elementów potomnychUtworzenie dostawcy dla elementów potomnych widokuKontrolowanie spełniania zależnościOgraniczanie wyszukiwania dostawcyPominięcie samodzielnie zdefiniowanego dostawcyPodsumowanieRozdział 21. Używanie i tworzenie modułuUtworzenie przykładowego projektuModuł głównyWłaściwość importsWłaściwość declarationsWłaściwość providersWłaściwość bootstrapUtworzenie modułu funkcjonalnegoUtworzenie modułu modeluUtworzenie definicji modułuUaktualnianie innych klas aplikacjiUaktualnienie modułu głównegoUtworzenie modułu narzędziowegoUtworzenie ka
talogu modułu i przeniesienie plikówUaktualnianie klas w nowym moduleUtworzenie definicji modułuWłaściwość importsWłaściwość providersWłaściwość declarationsWłaściwość exportsUaktualnianie innych klas aplikacjiUaktualnienie modułu głównegoUtworzenie modułu wraz z komponentamiUtworzenie katalogu modułu i przeniesienie plikówUtworzenie definicji modułuUaktualnienie pozostałych klasUaktualnienie modułu głównegoPodsumowanieCzęść III Zaawansowane funkcje AngularaRozdział 22. Utworzenie przykładowego projektuRozpoczęcie pracy nad przykładowym projektemDodawanie i konfigurowanie pakietu Bootstrap CSSUtworzenie struktury projektuUtworzenie modułu modeluUtworzenie typu danych produktuUtworzenie źródła danych i repozytoriumZakończenie pracy nad modułem modeluUtworzenie modułu coreUtworzenie współdzielonej usługi informacji o stanieUtworzenie komponentu tabeliUtworzenie szablonu komponentu tabeliUtworzenie komponentu formularzaUtworzenie szablonu komponentu formularzaUtworzenie stylów komponentu formularzaZakończenie pracy nad modułem coreUtworzenie modułu messagesUtworzenie modelu i usługiUtworzenie komponentu i szablonuZakończenie pracy nad modułem messagesZakończenie pracy nad projektemPodsumowanieRozdział 23. Poznajemy bibliotekę Reactive ExtensionsUtworzenie przykładowego projektuPoznajemy problemRozwiązanie problemu za pomocą biblioteki Reactive ExtensionsKlasa ObservableKlasa ObserverKlasa SubjectUżywanie potoku asyncUżywanie potoku async wraz z niestandardowym potokiemSkalowanie w górę modułów funkcjonalnych aplikacjiWyjście poza podstawyFiltrowanie zdarzeńTransformowanie zdarzeńUżywanie różnych obiektów zdarzeniaOtrzymywanie jedynie odmiennych zdarzeńUżywanie własnej procedury sprawdzania równościPobieranie i pomijanie zdarzeńPodsumowanieRozdział 24. Wykonywanie asynchronicznych żądań HTTPUtworzenie przykładowego projektuKonfigurowanie modułu funkcjonalności modeluUtworzenie pliku danychUaktualnienie komponentu formularzaUruchomienie przykładowego projektuPoznajemy usługę sieciową typu RESTfulZastąpienie statycznego źródła danychUtworzenie usługi nowego źródła danychKonfigurowanie żądania httpPrzetwarzanie odpowiedziKonfigurowanie źródła danychUżywanie źródła danych typu RESTZapisywanie i usuwanie danychKonsolidowanie żądań HTTPWykonywanie żądań między domenamiUżywanie żądań JSONPKonfigurowanie nagłówków żądaniaObsługa błędówWygenerowanie komunikatów przeznaczonych dla użytkownikaFaktyczna obsługa błęduPodsumowanieRozdział 25. Routing i nawigacja część 1.Utworzenie przykładowego projektuRozpoczęcie pracy z routingiemUtworzenie konfiguracji routinguUtworzenie komponentu routinguUaktualnienie modułu głównegoZakończenie konfiguracjiDodawanie łączy nawigacyjnychEfekt zastosowania routinguDokończenie implementacji routinguObsługa zmiany trasy w komponencieUżywanie parametrów trasyUżywanie wielu parametrów trasyUżywanie parametrów opcjonalnych trasyNawigacja w kodzieOtrzymywanie zdarzeń nawigacyjnychUsunięcie dołączania zdarzeń i obsługującego je koduPodsumowanieRozdział 26. Routing i nawigacja część 2.Utworzenie przykładowego projektuDodawanie komponentów do projektuUżywanie znaków wieloznacznych i przekierowańUżywanie znaków wieloznacznych w trasieUżywanie przekierowania w trasieNawigacja w komponencieReakcja na zmiany w routinguNadawanie stylu łączu aktywnej trasyPoprawienie przycisku WszystkieUtworzenie trasy potomnejUtworzenie outletu trasy potomnejUzyskanie dostępu do parametrów z poziomu tras potomnychPodsumowanieRozdział 27. Routing i nawigacja część 3.Utworzenie przykładowego projektuZabezpieczanie trasOpóźnienie nawigacji za pomocą resolveraUtworzenie usługi resolveraRejestrowanie usługi resolveraZastosowanie resolveraWyświetlenie treści w charakterze miejsca zarezerwowanegoUżywanie resolvera w celu rozwiązania problemu związanego z dowolnie wpisanym adresem URLUniemożliwienie nawigacji dzięki użyciu strażnikówUniemożliwienie aktywowania trasyKonsolidowanie strażników trasy potomnejUniemożliwienie dezaktywacji trasyDynamiczne wczytywanie modułów funkcjonalnychUtworzenie prostego modułu funkcjonalnegoDynamiczne wczytywanie modułuUtworzenie trasy do dynamicznie wczytywanego modułuUżywanie dynamicznie wczytywanego modułuZabezpieczanie dynamicznie wczytywanego modułuZastosowanie strażnika dynamicznie wczytywanego modułuOdwołania do nazwanych outletówUtworzenie dodatkowych elementów Nawigacja podczas użycia wielu outletówPodsumowanieRozdział 28. AnimacjeUtworzenie przykładowego projektuWyłączenie opóźnienia HTTPUproszczenie szablonu tabeli i konfiguracji routinguRozpoczęcie pracy z animacjami AngularaWłączenie modułu animacjiUtworzenie animacjiZdefiniowanie grup stylówZdefiniowanie stanu elementuZdefiniowanie transformacji stanuZdefiniowanie wyzwalaczaZastosowanie animacjiPrzetestowanie animacjiPoznajemy wbudowane stany aplikacjiPoznajemy transformację elementuUtworzenie transformacji dla wbudowanych stanówAnimowanie dodawania i usuwania elementuKontrolowanie animacji transformacjiUżywanie funkcji dotyczących czasu w animacjiZdefiniowanie opóźnienia początkowegoUżywanie dodatkowych stylów podczas transformacjiRównoczesne odtwarzanie animacjiPoznajemy grupy stylów animacjiZdefiniowanie najczęściej używanych stylów w grupie przeznaczonej do wielokrotnego użyciaUżywanie transformacji elementuZastosowanie stylów frameworka CSSPodsumowanieRozdział 29. Testy jednostkowe w AngularzeUtworzenie przykładowego projektuUtworzenie prostego testu jednostkowegoPraca z frameworkiem JasmineTestowanie komponentu AngularaPraca z klasą TestBedKonfigurowanie zależności klasy TestBedTestowanie operacji dołączania danychTestowanie komponentu wraz z zewnętrznym szablonemTestowanie zdarzeń komponentuTestowanie właściwości danych wyjściowychTestowanie właściwości danych wejściowychTestowanie operacji asynchronicznejTestowanie dyrektywy AngularaPodsumowanie O autorze: Adam Freeman – jest doświadczonym programistą, autorem wielu świetnie przyjętych książek o programowaniu w Javie. Tworzył również duże systemy rozproszone (platformy e-commerce). Zajmował stanowiska kierownicze w różnych firmach, wśród których są Netscape, Sun Microsystems, giełda NASDAQ i banki. Jest już na emeryturze, swój czas przeznacza na pisanie i bieganie na długie dystanse.
Informatyka
ajatollah, polska rzeki, tito vilanovy, magdalena adamowicz, układ zbiorowy pracy, usos uj, aleksandra zdrobnienia, od kiedy 500 plus na pierwsze dziecko, druczek faktury vat, nie do końca, czarny ptak, monciaku, mosty dla regionów, mario waluty, awatary, ulga na start zus
yyyyy