7. Node Packaged
Modules
• system zarządzania zależnościami dla
„server-side js”
• zależności opisywane w pliku package.json
• npm install - instaluje pakiety, których
jeszcze nie ma w projekcie
• npm update - sprawdza, czy istnieją nowsze
wersje pakietów + instaluje
• npm install nazwa-pakietu —save-dev
- instaluje pakiet, dodaje go do package.json
8. Bower
npm install -g bower
• zarządzanie zależnościami dla client-side js
• zależności opisywane w bower.json
• bower install - instaluje pakiety, których jeszcze
nie ma w projekcie
• bower update - sprawdza, czy istnieją nowsze
wersje pakietów + instaluje
• bower install nazwa-pakietu --save
- instaluje pakiet, dodaje go do bower.json
• pakiety instalowane są do katalogu
/bower_components/nazwa-pakietu/…
- stamtąd należy je linkować w plikach html
11. Moduły, struktura aplikacji
• Moduły wskazują na zależności od zewnętrznych bibliotek
• Moduły nie separują zawieranych komponentów
(namespaces)
• Poszczególne fragmenty aplikacji jako moduły,
o hierarchii odzwierciedlonej w strukturze katalogów
Form Follows Function
OPINIA
18. Usługi
• Miejsce na logikę biznesową
• Metody pomocnicze,
powtarzalny kod
• Współdzielone dane / model
Po co? Jak?
.constant(…
.value(…
.service(…
.factory(…
.provider(…
usługi wbudowane: https://docs.angularjs.org/api/ng/service
23. Dyrektywy
• Enkapsulują logikę związaną z zachowaniem
elementu interfejsu
• Tworzą widgety - małe aplikacje, klocki z których
budujemy większe fragmenty…
27. Filtry
• Umożliwiają przekształcenie danych w trakcie
przejścia ze $scope do widoku bez zmieniania
oryginalnej wartości.
1 {{ user.firstName | uppercase }}
2 Jack -> JACK
3
4 {{ user.createdAt | date:'dd.MM.yyyy, HH:mm' }}
5 Wed Mar 05 2014 14:22:01 GMT+0100 (CET) -> 05.03.2014, 14:22
6 1394025721000 -> 05.03.2014, 14:22
7
8 {{ user.interests | orderBy:'toString()':true | limitTo:2 }}
9 ['movies','sports','gaming','travel'] -> ['travel','sports']
28. Własne Filtry
Definiowanie własnego filtra sprowadza się do deklaracji
prostej funkcji:
1 myApp.filter('slice', function() {
2 return function(arr, start, end) {
3 return (arr || []).slice(start, end);
4 };
5 });
nazwa filtra
wartość na wejściu kolejne parametry
33. Co dalej?
więcej na temat organizacji kodu i innych dobrych praktyk:
https://github.com/toddmotto/angularjs-styleguide
https://github.com/johnpapa/angularjs-styleguide
34. Co dalej?
Regularne szkolenia w grupach 4-8 osób
Więcej materiału
Więcej case’ów
Więcej elastyczności i czasu
Więcej lunchy :)