Materiał kątowy jest ramami komponentami UI, która implementuje specyfikację projektowania materiałów Google dla kątowej 2 - nowej, szybszej implementacji kątowej, napisanej w maszynach. Chociaż nadal w alfa, materiał kątowy zapewnia już zestaw elementów interfejsu wielokrotnego użytku i dostępnych na podstawie materiału.
Sama kątowa jest przeznaczona do użytku na wszystkich platformach (Web, Mobile i Desktop) i ma z nią wiele nowych technologii. Na poziomie JavaScript mamy dodatkową składnię ECMAScript 2015 (ES6), wsparcie dla maszyn i interfejsu z maszynopastu, wraz z dekoratorami z API odbicia metadanych. Używa obserwowalności z biblioteki rozszerzeń biernych, aby zarządzać sekwencjami zdarzeń w sposób funkcjonalny programowanie. Wykorzystuje strefy do kapsułkowania i przechwytywania aktywności asynchronicznej, aby zapewnić formę przechowywania lokalnego wątku, umożliwiając kątowe do automatycznego reagowania na zmiany danych w zdarzeń asynchronicznych w celu utrzymania wiązań danych. Wreszcie, ładowanie modułu jest obsługiwane przez SystemJs.
W tym samouczku będziemy korzystać z kątowego 2, aby utworzyć prostą aplikację do zrobienia z elementami projektowania materiałów podpisowych. Uzyskaj tutaj pliki źródłowe .
Konfigurowanie początkowego środowiska może być trudne. Tam jest Nasiona kątowe dostępny, jak również Kątowy2-Starter. . Jednak jest jeszcze lepszy: z kątowy-cli. Możesz skonfigurować projekt kątowy 2 za pomocą jednego polecenia.
Nie tylko dba o konfigurację wszystkich technologii, o których wspomniałem w ostatniej sekcji (przez węzeł i NPM), również dodać rusztowanie do testowania jednostki Jasmine, kątomierz testowania końcowego, plus testowanie TSLINT, a Codelyzer Codic Code Analiza kątowego maszynopisu 2. Chociaż nie musisz używać tych wszystkich, zdecydowanie powinieneś. Jest tak proste w użyciu, zastanawiisz się, jak kiedykolwiek się bawiłeś.
Kątowy CLI jest dostępny jako pakiet NPM, więc będziesz musiał zainstalować węzeł i NPM na całym świecie na swoim komputerze NPM install -g angular-cli . Teraz utworzyć nową aplikację kątową 2 ng nowy materiał2-do . Będziesz musiał trochę poczekać, ponieważ po tym, jak generuje niezbędne pliki, inicjuje git repo i robi NPM Install. aby pobrać wszystkie niezbędne moduły Node_modules / . Spójrz na pakiet.json. I znasz tam moduły i skrypty.
Utworzyłeś nową aplikację Kątową 2, która przestrzega oficjalnych najlepszych praktyk.
Domyślna aplikacja nie wie nic o projekcie materialnej (jestem pewien, więc musimy go dodać.
Istnieje lista opublikowanych pakietów konstrukcyjnych kątowych 2 w @ kanciasty2-materiał biblioteka. W tym przykładzie będziemy używać rdzeń (wymagane dla wszystkich aplikacji kanciastych 2), a także przycisk , karta , Pole wyboru , Ikona , Wejście , lista i pasek narzędzi :
npm install --save @angular2-material/{core,button,card,checkbox,icon,input,list,toolbar}@2.0.0-alpha.5
Dla pakietu dostawcy, musimy dodać @ kątowy2-materiał / ** / * do tablicy vendornpmfiles. w kątowa-cli-build.js . Musimy również dodać ścieżkę do @ kanciasty2-materiał do mapy obiekt:
Const Map: Any = {
"@ kątowy2-materiał": "dostawca / @ kanciasty2-materiał"
};
Niech SystemJs wie, jak przetwarzać nowe moduły, wskazując na główne pliki każdego z pakietów:
Const Pakiety: dowolny = {};
// Umieść nazwy dowolnego elementu materiału tutaj
Const MaterialPKGS: String [] = ["Core '," przycisk "," karta "," pola wyboru ",
"Ikona", "wejście", "lista", "pasek narzędzi";
MaterialPkgs.Forach ((PKG) = & GT; {
pakiety [`@ kątowy2-materiał / $ {pkg}`] = {main: `$ {pkg} .js`};
});
Teraz nadszedł czas, aby załadować czcionkę ikony projektu materiału w z src / index.html. . Każda czcionka będzie działać, ale używamy standardowych ikon projektowych materiałów:
Link href = "https://fonts.googleapis.com/icon?family=Material+icons" Rel = "Stylesheet" & GT;
Możemy teraz pracować z konstrukcją materialną w naszej aplikacji do do zrobienia. Jeden z obecnie brakujących elementów z konstrukcji materiału kątowego 2 jest monit lub okno dialogowe, więc dla naszego pierwszego zadania zrobimy jeden!
Utwórzmy nowy komponent za pomocą karty projektowej, paska narzędzi, wejścia i kilku przycisków. w SRC / App. folder twojego repo, typ Ng generuj okno dialogowe Component . To generuje nowe DIALOGCOMPONENT. w SRC / App / Dialog i dodaje beczkę System-config.ts. więc SystemJs wie, jak go załadować.
Jeśli spojrzysz na wygenerowane Dialog.comPonent.ts. Plik, zobaczysz pierwszą linię: Importuj {komponent, oninit} od "@ kątowy / rdzeń"; . Składnik jest jednym z głównych bloków budowlanych kątowych i Oninit. jest jednym z wdrażania interfejsów. Jednak w celu uzyskania dostępu do komunikacji między zagnieżnymi elementami, a także wspomniane powyżej elementy projektu materiału, musimy importować wejście, Wynik i Eventemitter. od @ kątowy / rdzeń; i Mdcard. , Mdinput. , Mdtoolbar. i Mdbutton. z odpowiednich modułów w @ kanciasty2- materiał biblioteka.
Aby wykonać te materiały, musimy wstrzyknąć dyrektywy nasze DIALOGCOMPONENT. wymaga. Dodamy następujące dyrektywy do @Składniki Metadane:
Szablonurl: "Dialog.comPonent.html",
Dyrektywy: [Mdcard, Mdtoolbar, Mdinput, Mdbutton],
Styleurls: ['Dialog.comPonent.csssss']
Następnie deklarujemy liczbę @Wejście zmienne ( oktekst , anulować i tak dalej), które pozwalają nam zdefiniować zawartość okna dialogowego. Musimy również dodać jeden @Wynik emiter, który pozwala nam wywołać funkcję o wartości w składniku nadrzędnym, gdy okno dialogowe jest zamknięte.
Teraz możemy zastąpić wygenerowany konstruktor Dialog.comPonent.ts. Z następującym kodem:
Konstruktor () {
to.oktext = 'ok';
to.CancelText = 'Anuluj';
}
emitvalue (wartość) {
to.Valueemed.emit (wartość);
}
Jak również używać @Wejście zmienne w naszej DIALOGCOMPONENT. w ramach Dialog.comPonent.html. Szablon, The.. MD-wejście pozwala nam przyjąć dane wejściowe od użytkownika:
& LT; MD-wejście klasy = "pełna szerokość" [symbol zastępczy] = "symbol zastępczy"
[(Ngmodel)] = "Wartość" #dialoginput
(Keyup.ENer) = "EmitValue (wartość)"
(Keyup.escape) = "EmitValue (Null)" & GT; & LT; / MD-wejście & GT;
The. MD-przyciski Pozwól użytkownikowi kliknąć "OK", "Anuluj" lub cokolwiek zdecydujesz się oznaczyć te przyciski:
Przycisk MD (kliknij) = "EmitValue (Null)" Color = "Primary" & GT;
{{ANANDEXT}}
& lt; / button & gt;
& LT; Przycisk MD-Podniesiony przycisk (kliknięcie) = "EmitValue (wartość)" Color = "Primary" & GT;
{{oktext}}
& LT; / Button & GT;
Zauważ Keyup. Pełniczki zdarzeń, które zadbają o rzeczy, gdy naciśnięty jest klawisz Enter lub Escape. Te ładowarki są identyczne z Kliknij Pełnomocnicy wydarzeń anulować i oktekst . Ucieczka robi to samo co anulowanie (emitvalue (null)) i uderzanie w Enter będzie miał ten sam wynik jako kliknięcie OK (emitvalue (wartość)) . Pozwala to na szybki monitujący przez użytkownika wartość przez A. MD-wejście i otrzymuj emitowane produkty.
Możemy zobaczyć przykłady wielu elementów projektowych materiałów: MD-CARD. , Przycisk MD. , i tak dalej. Musimy również dodać trochę CSS Dialog.comPonent.css. Aby uzyskać pragnienie układu - możesz zobaczyć pełny kod w załączonym Github Repo.
Teraz dodajmy to DIALOGCOMPONENT. do Material2-DO.COMPONENT.HTML. Aby zobaczyć, jak wygląda:
& LT; App-Dialog [Title] = "" Monit dialogowy ""
[Szablon] = "" Jest to nasz nowy komponent oparty na projektowaniu: ""
[Placeholder] = "" Wpisz tekst tutaj "
[oktekst] = "" tak ""
[Anuluj] = "" Nie "
[Wartość] = "" Tekst począwszy ""
(JAKOŚĆ) = "Log ($ Event)"
[showprompt] = "true" & gt;
& LT; / App-Dialog & GT;
Zawiadomienie mamy dosłowne struny do wszystkich @Inputs. . Wymagają one od nas stosowania pojedynczych i podwójnych cytatów, w przeciwnym razie kanciasty interpretuje zawartość jako nazwa zmiennej w Składnik zakres.
Mamy też jedną emitowaną @Wynik . To sprawia, że okno dialogowe jest proste i niezwykle konfigurowalne. Większość wejść domyślna byłaby puste struny, jeśli zostaną pominięte.
Modyfikujmy się Materiał2dokomponent. . Musimy importować dialogComponent i deklarować go jako dyrektywę, inaczej Materiał2dokomponent. nie będzie mógł go sprawić. Dodamy również funkcję dziennika:
Log (tekst) {
konsola.log (tekst);
}
Spójrzmy na nasze dzieło. Możesz obsługiwać aplikację (domyślny port to 4200), biegając NPM Run-Script Start , co z kolei biegnie NG Server. . Jeśli otworzysz konsolę, możesz zobaczyć, co jest rejestrowane: Zawartość wejścia jest emitowana po kliknięciu "Tak" i zero jest emitowany po kliknięciu "Nie".
Jesteśmy teraz gotowi do korzystania z tego nowego DIALOGCOMPONENT. Aby utworzyć naszą aplikację do do zrobienia.
Użyjemy następujących komponentów MD dla głównej aplikacji: pasek narzędzi , lista , element listy , Pole wyboru , przycisk , Ikona , Ikona-rejestr. i jego zależne, Http_provider. , z kątowej biblioteki HTTP. Należy je dodać do sekcji importu Materiał2dokomponent. .
Po raz kolejny, aby móc renderować te komponenty, musimy je umieścić w @Składniki metadata. dyrektywy macierzy się wraz z DIALOGCOMPONENT. , które właśnie dodaliśmy:
Dyrektywy: [Mdcard, Mdtoolbar, MDlist, Mdlistitum, MdCheckbox, Mdbutton, MDicon, DialogComponent],
Aby uzyskać dostęp do Mdiconregistry. , musimy go wstrzyknąć wraz z Http_providers. , za pośrednictwem @Składniki metadata. dostawcy szyk:
Dostawcy: [Mdiconregistry, http_providers],
Teraz wykorzystywamy nasze DIALOGCOMPONENT. , dodając wystarczającą ilość logiki, aby uzyskać prostą aplikację do do zrobienia. The. Tododialog. jest wywoływany, aby otworzyć naszym dialogu, z zadaniem do edycji ( do zrobienia ) Or zero Jeśli tworzymy nowy.
Skonstruowaliśmy domyślne zmienne do nowego zadania lub jeśli edytujemy zadanie zamiast tego, zmieniamy je odpowiednio. Następnie pokazujemy DIALOGCOMPONENT. Ustawiając showdialog. zmienna do prawdziwe :
Tododialog (TODO = NULL) {
to.OKBUTTONTEXT = 'Utwórz zadanie;
to.fieldValue = '';
to.editingtodo = todo;
Jeśli (Todo) {
to.fieldValue = todo.title;
to.OKBUTTONTEXT = 'Edytuj zadanie;
}
to.showdialog = true;
}
The. UpdateTodo. Funkcja nazywa się, gdy chcemy go zamknąć. Inne funkcje ( Edittodo. , addtodo. , Hyderia ) są metodami pomocnikami UpdateTodo. .
UpdateTodo (tytuł) {
Jeśli (tytuł) {
tytuł = title.trim ();
Jeśli (w ten sposób) {
to.edittodo (tytuł);
} else {
to.addtodo (tytuł);
}
}
to.hydredialog ();
}
W Material2-DO.COMPONENT.HTML. Daliśmy naszą aplikację Pasek narzędzi MD. gdzie umieściliśmy tytuł i MD-Ikona nazywa Dodaj (który wygląda jak znak plus) dla naszego przycisku pływającego (FAB), co pozwala nam utworzyć nowe zadanie:
& LT; Przycisk MD-Fab Class = "Fab-add" (kliknij) = "Tododialog ()" & GT;
& lt; MD-Icon & GT; Dodaj & LT; / MD-Icon & GT;
& LT; / Button & GT;
Używamy MD-Card trzymać A. Lista MD. i an. * Ngfor. Aby iterować, i wyświetlać, nasze Lista rzeczy do zrobienia AS. Elementy MD-LIST :
& LT; MD-LIST-ELEMENT * NGFOR = "Niech tokolwiek todolist; niech indeks = indeks" & gt;
Md-CheckBox. Umożliwia nam zaznaczenie przedmiotów na naszej liście. I mamy dwa MD-MINI-FAB Przyciski możemy użyć do usunięcia i edycji naszego zadania: MD-Icons Delete_Forever i tryb_edit. :
& LT; przycisk MD-MINI-FAB (kliknij) = "Usuń (indeks)" Color = "Primary" & GT;
& lt; MD-Icon & GT; Delete_Forever & LT; / MD-Icon & GT;
& lt; / button & gt;
& LT; przycisk MD-MINI-FAB (kliknij) = "Tododialog (Todo)" Color = "Primary"
[Wyłączone] = "Todo.completed" & GT;
& lt; MD-Icon & GT; Mode_edit & LT; / MD-Icon & GT;
& LT; / Button & GT;
Z małym CSS pozostają ukryte, dopóki się wywrócisz (lub klikniesz). Możesz zobaczyć kod w repo.
Ponieważ materiał kątowy 2 jest nadal w alfa, istnieją pewne rzeczy, których brakuje - w szczególności, w szczególności sygnatariusz MD Ropipter. Chociaż mogą przebić zmiany do API przed sobą, jest bardzo funkcjonujące. Rodziło również o roszczenie o bezpośrednim interfejsie interfejsu API, które nie mylenia deweloperów i jest łatwe do wykorzystania do stworzenia świetnych zastosowań.
Niniejszy artykuł został pierwotnie opublikowany w wydaniu 284 netto, najlepiej sprzedający się magazyn na świecie dla projektantów stron internetowych i programistów. Subskrybuj tutaj .
Powiązane artykuły:
(Kredyt obrazu: przyszłość) Grava jest systemem zarządzania treścią (CMS) z różnicą. Systemy zarządzania tr..
(Kredyt obrazu: Antony Ward) Zdolność do wykonywania retopologii w Majowie jest użyteczną umiejętnością. Retop..
Byłem ogromnym fanem mangi od dzieciństwa i niemożliwe jest ukryć wpływ, że pasja ma na mojej sztuce. W moim dążeniu do m..
Korzystanie z elementów Twojego Ołówek underdrawing jest świetnym sposobem na przyjęcie uwagi widza w kawałk..
Z ogromną różnorodnością przerażających stworzeń i postaci do stworzenia, pracując z warsztatami gier, aby przetłumaczy..
Powiedzenie może być: "Nie oceniaj książki po okładce", ale projekt okładki może w rzeczywistości zrobić lub przełamać sukces książki. Jeśli jesteś taki jak ja, deska przedniej..
Adobe uruchomi nową serię samouczków wideo dzisiaj o nazwie Dokonuje go teraz, który ma na celu przedstawić sposób tworzenia konkretnych projektów projektowych przy użyciu różnych ..
Flexbox to świetne narzędzie do redukcji CSS Blow i ma trochę cukru wbudowany, aby poradzić sobie z rzeczami jak kolejność ..