AngularJS
Szybkie wprowadzenie
AngularJS to szkielet pozwalający tworzyć zaawansowane aplikacje działające w
przeglądarce internetowej.
Dzięki niemu udało się przenieść do języka JavaScript najlepsze wzorce znane z
tradycyjnych języków programowania, takich jak Java czy C#. To posunięcie pozwoliło
też programistom na szybsze testowanie kodu, tworzenie przejrzystej architektury oraz
wydajniejszą pracę.
Jeżeli chcesz skorzystać z tych wszystkich udogodnień, musisz poznać budowę oraz
najlepsze praktyki tworzenia aplikacji z wykorzystaniem AngularJS. Lektura tej książki
ułatwi Ci to zadanie! Sięgnij po nią i poznaj wzorzec MVC (ang. Model-View-Controller),
skonfiguruj swoje środowisko pracy oraz stwórz pierwszą aplikację. W trakcie lektury
kolejnych rozdziałów będziesz zdobywać fundamentalną wiedzę na temat dyrektyw, testów
jednostkowych i pracy z formularzami. Następnie nauczysz się komunikować z serwerem,
korzystając z usługi $http, oraz przekonasz się, do czego służy moduł ngRoute. Na
sam koniec dowiesz się, jak tworzyć, testować i korzystać z własnych dyrektyw, a
także zapoznasz się z najlepszymi praktykami, które ułatwią Ci codzienne życie.
Dzięki tej książce błyskawicznie poznasz i wykorzystasz możliwości AngularJS!
Nauczysz się przenosić dane do widoków za pomocą kontrolerów.
Dowiesz się, kiedy należy używać usług AngularJS, a kiedy kontrolerów.
Poznasz techniki asynchronicznego zapisywania, pobierania i aktualizowania danych
znajdujących się na serwerze.
Dowiesz się, kiedy używać filtrów do konwertowania danych na różne formaty.
Zobaczysz jak zaimplementować aplikację jednostronicową przy użyciu modułu
ngRoute służącego do wybierania widoków i nawigacji.
Zgłębisz tajniki podstawowych i zaawansowanych dyrektyw do tworzenia komponentów
wielokrotnego użytku.
Napiszesz testy kompleksowe dla całej działającej aplikacji.
Nauczysz się wielu technik i obsługi różnych narzędzi potrzebnych w toku
tworzenia programu.
Wprowadzenie (9)
1. Wprowadzenie do systemu AngularJS (15)
- Wprowadzenie do AngularJS (15)
- Co to jest MVC (16)
- Zalety systemu AngularJS (17)
- Filozofia systemu AngularJS (17)
- Rozpoczynanie pracy z systemem AngularJS (23)
- Jakie zaplecze trzeba posiadać? (23)
- Czy cały mój program musi być aplikacją AngularJS? (23)
- Prosta aplikacja AngularJS (24)
- Witaj, świecie (25)
- Podsumowanie (26)
2. Podstawowe dyrektywy i kontrolery AngularJS (27)
- Moduły AngularJS (27)
- Tworzenie pierwszego kontrolera (29)
- Praca z tablicami i wyświetlanie ich zawartości (34)
- Inne dyrektywy (38)
- Sposób użycia dyrektywy ng-repeat (39)
- Przeglądanie zawartości obiektu (40)
- Zmienne pomocnicze w ng-repeat (41)
- Śledzenie po identyfikatorze (42)
- Zwielokrotnianie wielu elementów HTML (44)
- Podsumowanie (45)
3. Testowanie jednostkowe w systemie AngularJS (47)
- Testowanie jednostkowe - co i dlaczego (47)
- Wprowadzenie do Karmy (49)
- Wtyczki do Karmy (50)
- Konfiguracja Karmy (51)
- Generowanie konfiguracji Karmy (53)
- Szkieletowy system testów Jasmine (53)
- Składnia Jasmine (53)
- Przydatne dopasowywacze Jasmine (54)
- Test jednostkowy dla kontrolera (55)
- Uruchamianie testu jednostkowego (58)
- Podsumowanie (59)
4. Formularze, pobieranie danych i usługi (61)
- Posługiwanie się dyrektywą ng-model (61)
- Praca z formularzami (63)
- Wiązanie danych i modele (64)
- Sprawdzanie danych z formularza i stany (65)
- Obsługa błędów w formularzu (67)
- Wyświetlanie informacji o błędach (68)
- Moduł ngMessages (69)
- Stylizowanie formularzy i stanów (72)
- ngModelOptions (75)
- Zagnieżdżanie formularzy i dyrektywa ng-form (77)
- Inne kontrolki formularzy (79)
- Obszary tekstowe (79)
- Pola wyboru (79)
- Przyciski radiowe (81)
- Pola kombi i listy rozwijane (82)
- Podsumowanie (84)
5. Wszystko o usługach AngularJS (85)
- Usługi AngularJS (85)
- Do czego służą usługi w systemie AngularJS (86)
- Usługi a kontrolery (88)
- Wstrzykiwanie zależności w AngularJS (89)
- Wbudowane usługi systemu AngularJS (90)
- Kolejność wstrzykiwania (92)
- Najczęściej używane usługi systemu AngularJS (92)
- Tworzenie własnej usługi AngularJS (93)
- Tworzenie prostej usługi AngularJS (93)
- Różnica między fabryką, usługą i dostawcą (96)
- Podsumowanie (100)
6. Komunikacja z serwerem przy użyciu usługi $http (101)
- Pobieranie danych za pomocą usługi $http i żądań GET (101)
- Obietnice (104)
- Propagacja (105)
- Usługa $q (106)
- Wykonywanie żądań POST przy użyciu usługi $http (107)
- Interfejs API usługi $http (108)
- Konfiguracja (109)
- Zaawansowane właściwości usługi $http (111)
- Konfigurowanie ustawień domyślnych usługi $http (111)
- Interceptory (113)
- Najlepsze praktyki (115)
- Moduł ngResource (117)
- Podsumowanie (120)
7. Testowanie jednostkowe i obiekty XHR (121)
- Wstrzykiwanie zależności w testach jednostkowych (121)
- Przechowywanie stanu między testami jednostkowymi (123)
- Testowanie usług (124)
- Imitowanie usług (126)
- Szpiedzy (128)
- Testowanie jednostkowe wywołań serwerowych (129)
- Podsumowanie (134)
8. Filtry (135)
- Czym są filtry AngularJS (135)
- Stosowanie filtrów AngularJS (135)
- Najczęściej używane filtry AngularJS (137)
- Używanie filtrów w kontrolerach i usługach (143)
- Tworzenie filtrów AngularJS (144)
- Co trzeba zapamiętać o filtrach (146)
- Podsumowanie (147)
9. Testowanie jednostkowe filtrów (149)
- Testowanie filtru (149)
- Testowanie filtru timeAgo (150)
- Podsumowanie (151)
10. Trasowanie przy użyciu modułu ngRoute (153)
- Trasowanie w aplikacji jednostronicowej (153)
- Moduł ngRoute (155)
- Opcje trasowania (157)
- Wykonywanie zadań przed załadowaniem trasy za pomocą opcji resolve (159)
- Usługa $routeParams (161)
- Na co trzeba uważać (162)
- Kompletny przykład trasowania (162)
- Dodatkowa konfiguracja (171)
- Tryb HTML5 (171)
- SEO a system AngularJS (174)
- Statystyki przeglądania stron aplikacji AngularJS (175)
- Alternatywne rozwiązania - ui-router (176)
- Podsumowanie (178)
11. Dyrektywy (179)
- Czym są dyrektywy (179)
- Alternatywa dla dyrektyw własnych (180)
- Dyrektywa ng-include (180)
- Ograniczenia dyrektywy ng-include (182)
- Dyrektywa ng-switch (183)
- Opcje podstawowe (185)
- Tworzenie dyrektywy (185)
- Szablon i adres szablonu (186)
- Określanie sposobu użycia dyrektywy (188)
- Funkcja link (189)
- Zakres (191)
- Atrybut replace (199)
- Podsumowanie (201)
12. Testowanie dyrektyw (203)
- Procedura testowania dyrektywy (203)
- Dyrektywa widżetu giełdowego (204)
- Tworzenie testu dyrektywy (204)
- Inne kwestie do rozważenia (208)
- Podsumowanie (209)
13. Zaawansowane opcje definicji dyrektyw (211)
- Cykle życia w AngularJS (211)
- Cykl życia systemu AngularJS (211)
- Cykl obliczeniowy (214)
- Cykl życia dyrektywy (215)
- Transkluzja (216)
- Podstawy transkluzji (218)
- Transkluzja - techniki zaawansowane (220)
- Kontrolery dyrektyw i funkcja require (223)
- Opcje klucza require (227)
- Dyrektywy wejściowe i ng-model (228)
- Tworzenie walidatorów (231)
- Kompilacja (233)
- Priorytet i terminal (238)
- Integracja zewnętrzna (239)
- Najlepsze praktyki (243)
- Zakresy (243)
- Sprzątaj i niszcz (244)
- Czujki (245)
- Funkcje $apply i $digest (245)
- Podsumowanie (246)
14. Testowanie kompleksowe (247)
- Do czego służy Protractor (247)
- Konfiguracja wstępna (248)
- Konfiguracja narzędzia Protractor (249)
- Test kompleksowy (250)
- Uwagi (253)
- Podsumowanie (255)
15. Porady i najlepsze praktyki (257)
- Testowanie (257)
- Programowanie oparte na testach (257)
- Różnorodność testów (258)
- Kiedy wykonywać testy (259)
- Struktura projektu (260)
- Najlepsze praktyki (260)
- Struktura katalogów (261)
- Biblioteki zewnętrzne (264)
- Punkt początkowy (265)
- Budowanie projektu (266)
- Grunt (266)
- Serwowanie pojedynczego pliku JavaScript (267)
- Minimalizacja (267)
- Zadanie ng-templates (268)
- Najlepsze praktyki (268)
- Uwagi ogólne (268)
- Uwagi dotyczące usług (269)
- Kontrolery (270)
- Dyrektywy (270)
- Filtry (271)
- Narzędzia i biblioteki (271)
- Batarang (272)
- WebStorm (273)
- Moduły opcjonalne (273)
- Podsumowanie (274)
Skorowidz (277)
288 stron, oprawa miękka