Kulmamateriaali on UI-komponenttikehys, joka toteuttaa Googlen materiaalin suunnittelun eritelmää kulma-2 - Uusi, Typectcript kirjoitettu kulman kulman nopeampi täytäntöönpano. Vaikka alfa, kulmamateriaali tarjoaa jo useita uudelleenkäytettäviä ja helposti saatavilla olevia käyttöliittymiä, jotka perustuvat materiaalimallistukseen.
Kulma 2 on suunniteltu käytettäväksi kaikilla alustoilla (Web, Mobile ja Desktop), ja siinä on monia uusia teknologioita siihen liittyvään teknologiaan. JavaScript-tasolla meillä on ylimääräinen syntaksi ECMascript 2015 (ES6), kirjoittamalla ja käyttöliittymän tukeen sekä metatietojen heijastuksen sovellusliittymän koristeluun. Se käyttää objektiivisia laajennuskirjastosta havaitut tapahtumien järjestelmien hallintatoiminnallisella ohjelmointiin. Se käyttää vyöhykkeitä kapseloida ja siepata asynkroninen aktiivisuus kierteen paikallisen varastoinnin muodostamiseksi, jolloin kulma voidaan autolla vastata datan muutoksiin asynkronisissa tapahtumissa tietojen sidoksissa. Lopuksi Module Loading käsittelee Systemjs.
Tässä opetusohjelmassa aiomme käyttää kulma 2: n luomaan yksinkertaisen tehtävän sovelluksen joidenkin allekirjoitusmateriaalin suunnittelun elementtejä. Hanki lähdetiedostot täältä .
Alkuperäisen ympäristön perustaminen voi olla vaikeaa. On olemassa Kulmat2-siemenet saatavilla sekä Kulma2-Starter . Kuitenkin on jotain parempaa: Kulma-CLI Voit määrittää kulmasi 2-projektin yhdellä komennolla.
Paitsi se huolehtii siitä, että kaikki viimeisessä osassa mainittu teknologiat (Solmun ja NPM) avulla voit myös lisätä myös telineiden testauksen telineitä, PROTRACTOR Päätypään testaus sekä TSLint-testaus ja Koodelyzerin staattinen koodin analyysi kulma 2-kirjoituksesta. Vaikka sinun ei tarvitse käyttää kaikkia näitä, sinun pitäisi ehdottomasti. Se on niin helppokäyttöinen, ihmettelet, miten olet koskaan saanut ilman sitä.
Kulma CLI on saatavana NPM-pakkaukseksi, joten sinun on asennettava solmu ja NPM maailmanlaajuisesti koneellesi käyttämällä NPM asentaa -G-kulma-cli . Luo uusi kulma 2 -sovellus NG uusi materiaali2-do . Sinun on odotettava vähän, koska sen jälkeen, kun se tuottaa tarvittavat tiedostot, se alustaa git repo ja tekee NPM-asennus Voit ladata kaikki tarvittavat moduulit Node_modules / . Katsokaa paketti.json Ja perehtynyt moduuleihin ja komentosarjoihin siellä.
Olet nyt luonut uuden kulma-2-sovelluksen, joka seuraa virallisia parhaita käytäntöjä.
Oletussovellus ei tunne mitään materiaalisuunnittelusta (valvonta, olen varma), joten meidän on lisättävä se itse.
On luettelo julkaistuista kulma-2-materiaalisen suunnittelun paketteista @ Kulma2-materiaali kirjasto. Tässä esimerkissä aiomme käyttää ydin (vaaditaan kaikkiin kulmamateriaaliin 2 sovelluksiin) sekä painike , kortti- , valintaruutu , kuvake , syöttää , lista ja työkalupalkki :
npm install --save @angular2-material/{core,button,card,checkbox,icon,input,list,toolbar}@2.0.0-alpha.5
Jotta myyjäpaketti työskentelee, meidän on lisättävä @ Kulma2-materiaali / ** / * joukko VendornPMFiles sisään Kulma-cli-build.js . Meidän on myös lisättävä polku @ Kulma2-materiaali jllek kartat esine:
CONT-kartta: Mikä tahansa = {
'@ Kulma2-materiaali': 'Myyjä / @ kulma2-materiaali'
};
Anna systemjs osaa käsitellä uusia moduuleja osoittamalla kunkin paketin päätiedostot:
CONST-paketit: any = {};
// Laita minkä tahansa materiaalikomponentin nimet täältä
const materiaalpkgs: merkkijono [] = ['Core', 'painike', 'kortti', 'valintaruutu',
"ICON", "Input", "Lista", "Työkalupalkki"];
Materiaalipkgs.Foreach ((PKG) = & gt; {
Pakkaukset [`@ Antrular2-materiaali / $ {PKG}`] = {Main: `$ {pkg} .js`};
});
Nyt on aika ladata materiaalin suunnittelun kuvakefontti of SRC / index.html . Mikä tahansa fontti toimii, mutta käytämme vakiomateriaalien suunnittelukuvakkeita:
& lt; linkki href = "https://fonts.googleapis.com/icon?family=material+econs" rel = "stylesheet" & gt;
Voimme nyt työskennellä materiaalin suunnittelussa tehtävässämme sovelluksessa. Yksi kulma-2-materiaalisen suunnittelun puuttuvista komponenteista on nopea tai valintaikkuna, joten ensimmäinen tehtävämme teemme yhden!
Luodaan uusi komponentti materiaalisen suunnittelukortin, työkalupalkin, tuloon ja pari painikkeella. Jssk SRC / App Repo-kansio, tyyppi ng Luo osavalintaikkuna . Tämä tuottaa uuden Dialogcomponent sisään SRC / App / Dialog ja lisää tynnyrin System-Config.TS Joten systemjs osaa ladata sen.
Jos katsot luomaa Dialog.comPonent.ts Tiedosto, näet ensimmäisen rivin: Tuo {komponentti, ONINIT} peräkkäin '@ Kulma / ydin'; . Komponentti on yksi tärkeimmistä rakennuksen korttelista, ja Oneit on yksi liitännät, joita se toteuttaa. Kuitenkin, jotta pääsitteisten komponenttien välisen viestinnän sekä edellä mainittujen materiaalisuunnittelukomponenttien saataisiin pääsy, meidän on tuontuu tulo, Lähtö ja Eventemiter peräkkäin @ Kulma / ydin; ja Mdcard , Mdinput , Mdtoolbar ja Mdbutton niiden vastaavista moduuleista @ Kulma2 - materiaali kirjasto.
Näiden materiaalikomponenttien tekemiseksi meidän on pyrittävä direktiivit Dialogcomponent vaatii. Lisäämme seuraavat direktiivit @Components Metatieto:
TemplateRL: "Dialog.comPonent.html",
Direktiivit: [MDCard, MdToolbar, Mdinput, MDButton],
Styleturls: ['valintaikkuna.comPonent.css']
Sitten julistamme useita @Input Muuttujat ( oktext , Cuctureltext Ja niin edelleen), jonka avulla voimme määritellä valintaikkunan sisällön. Meidän on myös lisättävä yksi @Output Emitter, jonka avulla voimme käynnistää toiminnon arvolla vanhemmassa komponentissa, kun valintaikkuna on suljettu.
Nyt voimme korvata luodut konstruktorin Dialog.comPonent.ts Seuraava koodi:
konstruktori () {
tämä.oktext = 'ok';
tämä.cancelttext = 'Peruuta';
}
emitvalue (arvo) {
tämä.valueemed.emit (arvo);
}
Sekä käyttämällä @Input Muuttujat sisällä Dialogcomponent sisällä Dialog.comPonent.html Malline, MD-tulo Antaa meille mahdollisuuden hyväksyä syötteen käyttäjältä:
& lt; MD-Input Class = "Full-Leveys" [Placeholder] = "Paikkakunta"
[(ngmodel)] = "Value" #dialoginput
(keyup.enter) = "emitvalue (arvo)"
(keyup.escape) = "emitvalue (nolla)" & gt; & lt; / md-tulo & gt;
The MD-painikkeet Anna käyttäjän napsauttaa OK "," Peruuta "tai mitä päätät merkitä nämä painikkeet:
& lt; painike MD-painike (klikkaa) = "emitvalue (nolla)" väri = "Ensisijainen" & gt;
{{cancurttext}}
& lt; / button & gt;
& lt; button MD-nostettu painike (klikkaa) = "Emitvalue (arvo)" Väri = "Ensisijainen" & gt;
{{oktext}}
& lt; / button & gt;
Huomaa kello Tapahtuman käsittelijät, jotka huolehtivat asioista, kun kirjoita tai paeta-näppäintä painetaan. Nämä käsittelijät ovat identtisiä klikkaus Tapahtuman käsittelijät Cuctureltext ja oktext . Escape tekee sama asia kuin peruuttaa (emitvalue (nolla)) , ja lyömällä Enter on sama tulos kuin napsauttamalla OK (emitvalue (arvo)) . Näin voimme pyytää käyttäjää a arvo kautta MD-tulo ja vastaanottaa lähetettyä tuotosta.
Voimme nähdä esimerkkejä useista materiaalirakenteista: MD-kortti , MD-painike , ja niin edelleen. Meidän on myös lisättävä joitakin CSS: tä Dialog.comPonent.csss Jotta voit saavuttaa asettelua, jota haluamme - voit tarkastella koko koodia mukana oheisessa Github Repo.
Lisää tämä Dialogcomponent jllek materiaali2-do.comPonent.html nähdä, mitä se näyttää:
& lt; app-dialogi [otsikko] = "" "Dialog Prompt" "
[Template] = "'Tämä on uusi materiaali suunnittelupohjainen osa:'"
[Placeholder] = "" Kirjoita teksti tähän ""
[OkText] = "Kyllä" "
[Cuctureltext] = "" Ei ""
[Arvo] = "" Aloitusteksti ""
(Videttu) = "log ($ tapahtuma)"
[showprompt] = "tosi" & gt;
& lt; / app-dialogi & gt;
Huomaa Meillä on kirjaimellisia merkkijonoja kaikille @Inputts . Nämä edellyttävät meitä käyttämään sekä yksittäisiä että kaksinkertaisia lainauksia, muuten kulma tulkitsevat sisällön muuttuvan nimellä Komponentti Soveltamisala.
Meillä on myös yksi lähetetty @Output . Tämä tekee valintaikkunasta yksinkertaisen ja erittäin konfiguroitavan. Suurin osa panoksista olisi maksanut tyhjiä merkkijonoja, jos ne jätetään pois.
Muokkaa Materiaali2DOCOMPONENT . Meidän on tuoo dialogcomponentti ja julistaa sen direktiiviehdoksi Materiaali2DOCOMPONENT ei voi tehdä sitä. Lisäämme myös lokitoiminnon:
loki (teksti) {
konsoli.log (teksti);
}
Katsotaanpa meidän käsityömme. Voit palvella sovellusta (oletusportti on 4200) käynnissä NPM RUN-SCRIPT START , joka puolestaan toimii NG-palvelin . Jos avaat konsolin, näet, mitä on kirjautunut: tulon sisältö on lähetetty, kun napsautat "Kyllä" ja tyhjä on lähetetty, kun napsautat "Ei".
Olemme nyt valmiita käyttämään tätä uutta Dialogcomponent Voit luoda tehtävämme sovelluksen.
Aiomme käyttää pääovellusta seuraavia MD-komponentteja: työkalupalkki , lista , List-tuote , valintaruutu , painike , kuvake , kuvake-rekisterin ja sen riippuvainen, Http_provider , kulma-http-kirjastosta. Joten nämä on lisättävä tuonti-osuuteen Materiaali2DOCOMPONENT .
Jälleen kerran, jotta nämä komponentit voitaisiin tehdä, meidän on sisällytettävä ne @Components metatieto direktiivit array Dialogcomponent , mitä lisäsimme juuri:
Direktiivit: [MDCard, MdToolbar, Mdlist, Mdlistitem, Mdcheckbox, MdButton, Mdicon, Dialogcomponent],
Päästä pääsyyn Mdiconregistry , meidän on pidenttävä se yhdessä Http_providers , kautta @Components metatieto palveluntarjoajat Array:
Palveluntarjoajat: [Mdiconregistry, http_providers],
Nyt voimme hyödyntää meidän Dialogcomponent , lisäävät tarpeeksi logiikkaa yksinkertaisella tavalla. The tododialog on kutsuttu avaamaan valintaikkunamme joko tehtävään muokata ( tehdä ) tai tyhjä Jos luomme uuden.
Asetamme uuden tehtävän oletusmuuttujat, tai jos muokkaamme tehtävää sen sijaan, että muutamme niitä vastaavasti. Sitten näytämme Dialogcomponent Asettamalla ShowDialog muuttuva totta :
Tododialog (TODO = NULL) {
tämä.okbuttontext = "Luo tehtävä";
tämä.fieldvalue = '';
tämä.editingtodo = todo;
jos (todo) {
tämä.fiFieldValuue = todo.Title;
tämä.okbuttontext = "Muokkaa tehtävä";
}
tämä.showdialog = tosi;
}
The Updatetodo Toimintoa kutsutaan, kun haluamme sulkea sen. Muut toiminnot ( Edittodo , addtodo , hideaali ) ovat avustajien menetelmiä Updatetodo .
Updatetodo (otsikko) {
Jos (otsikko) {
Otsikko = otsikko.Trim ();
jos (this.edingtodo) {
tämä.edittodo (otsikko);
} muu {
tämä.addtodo (otsikko);
}
}
tämä.hidealug ();
}
Sisään materiaali2-do.comPonent.html Olemme antaneet hakemuksesi MD-työkalupalkki missä olemme asettaneet otsikon ja MD-kuvake nimeltään lisätä (joka näyttää plusmerkkinä) kelluvan toimintapainikkeen (FAB), jonka avulla voimme luoda uuden tehtävän:
& lt; button md-fab class = "fab-add" (klikkaus) = "Tododialog ()" & gt;
& lt; md-icon & gt; Lisää & lt; / md-icon & gt;
& lt; / button & gt;
Käytämme MD-kortin sisältö pitää MD-lista ja * ngfor iteroida läpi ja näyttää, tehtävälista array MD-lista-kohteet :
& lt; MD-lista-tuote * ngfor = "letdo todolist; anna indeksi = indeksi" & gt;
MD-valintaruutu Ottaa meille mahdollisuuden poistaa kohteet luettelossamme. Ja meillä on kaksi MD-MINI-FAB Painikkeet voimme poistaa ja muokata tehtävämme: MD-kuvakkeet Delete_Forever ja tila_edit :
& lt; button md-mini-fab (klikkaa) = "Poista (indeksi)" COLOR = "Ensisijainen" & GT;
& lt; MD-ICON & GT; DELETE_FOREVER & LT; / MD-ICON & GT;
& lt; / button & gt;
& lt; button md-mini-fab (klikkaa) = "Tododialog (todo)" COLOR = "Ensisijainen"
[Disabled] = "todo.completed" & gt;
& lt; md-kuvake & gt; tila_edit & lt; / md-kuvake & gt;
& lt; / button & gt;
Pienillä CSS: llä nämä jäävät piilotetuksi, kunnes siirrät (tai napsauttamalla). Näet koodin repossa.
Kun kulmamateriaali 2 on edelleen alfa, jotkut asiat puuttuvat - erityisesti allekirjoitus MD-painike aaltoiluvaikutus. Vaikka API: n eteen saattaa rikkoa muutoksia, se on hyvin toimiva. Se elää myös väitteestä, jolla on suoraviivainen API, joka ei sekoita kehittäjille, ja se on helppo hyödyntää suurten sovellusten luomista.
Tämä artikkeli julkaistiin alun perin asiassa 284, maailman maailman suunnittelijoiden ja kehittäjien maailman myydyin aikakauslehti. Tilaa täältä .
Aiheeseen liittyvät artikkelit:
(Image Credit: Framer) Suunnittelijana on aina kysymys siitä, mitä prototyyppityökaluja sinun pitäisi käyttää ..
Todellisessa maailmassa valokuvauksessa valonsäteet ovat niiden näkyvissä, kun heillä on pinta pomppia pois, kuten pöly, sii..
Kun käsitteitä olentoja Zbrushissa, esitellä ideasi harrastajana, asentamaton 3D-taide voi tehdä kovasti yleis..
Etukentäjät ajattelevat suorakulmioita; Suorita suorakulmioita suorakulmioita suorakulmioita suorakulmioita. Voisimme käyttä�..
Maalaa kuvion, joka näyttää uskottavasta märästä, edellyttää, että otat useita tekijöitä huomioon - avain, joka on sel..
Kun vaikutukset vaikuttavat voimakkaita työkaluja, joita voimme käyttää jäljittelemään jäljitellä todellisuutta. Saatat olla tarpeen, jos esimerkiksi halusit tehdä pikivesi näyttä..
Adobe käynnistää nykyisin uuden sarjan video-opetusohjelmat Luova pilvi sovelluksia 60 sekunnissa tai vähemmän. Olitpa aloittelija tai haluan vain (erittäi..
Ennen kuin aloitan henkilökohtaisen kuvan työskentelyn, olen yleensä alkaa ajatella, mitä haluan nähdä valmiissa töissä. ..