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:
Fotografia portretowa to działanie bilansującego - jest tak wiele rzeczy, które należy pamiętać. Komunikowanie się z tematem i upewniając się, że czują się swobodnie, jest ważne...
(Kredyt obrazu: Knight Travis) Efekt anaglifów jest właściwą nazwą klasycznego stylu 3D, w którym musisz nosić..
Oczy są najważniejszym elementem każdego udanego portretu, ale wielu ludzi walczy o prawidłowo rysować ich. W tym artykule b..
Tworzenie przezroczystego materiału, takiego jak szkło wydaje się łatwe - po prostu zwiększyć suwak przezroczystości do 10..
Jednym z kluczowych rzeczy, które pracujące w CGI powinno zapewnić, jest większa precyzja. Jednak jest niesamowite, jak trudn..
Dla przybronników do Zbrush. , Interfejs wydaje się bardzo różny od innych programów modelowania 3D, więc mo..
Adobe wydał dwa nowe samouczki wideo, które pomogą Ci wziąć swój Photoshop Kreatywna chmura Umiejętności d..
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 ..