skabe en mobil anvendelse ved hjælp af wordpress, ioniske og angularjs

, skabe en mobil anvendelse ved hjælp af wordpress, ioniske og angularjs,,,,, 297,,,,,,,, 108,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,,,,, hvad du vil lave,,, indførsel, i denne lektion, jeg vil forklare dig, skridt for skridt   hvordan til at skabe en moderne, hybrid, mobile   anvendelse (six og androide) af din wordpress websted under anvendelse af de nyeste teknologier.vi vil bruge   ioniske ramme,   ecmascript   6,   new public management, webpack og apache   cordova., ved afslutningen af denne lektion du får følgende   anvendelse.det er kun tre moduler, et hjem, modul  , der viser deres seneste stillinger, en post, modul, som   viser en bestemt stilling, og en menu, modul, der viser menuen.,,,,, 1.værktøj, ioniske ramme, den smukke, open source - undtagen sdk for at udvikle fantastisk mobile apps med webteknologier.,, ioniske ramme økosystem er stort, herunder  , ioniske cli (kommandolinjen værktøj),  , ioniske presse (let presse meddelelser), og  , ioniske platform,   (backend tjenesteydelser).det   er i øjeblikket en af de øverste open source - projekter på github   med mere end 19 000 stjerner og over 600.000 apps skabt.,, ioniske dækker alle deres ansøgning er behov.men for denne forelæsning, vil jeg fokusere på   ioniske   ramme   (eller ionisk   sdk), som er en række angularjs   direktiver (web komponenter) og tjenesteydelser.,, ecmascript   6 (es6), ecmascript 2015 (6. udgave, er den gældende version af den ecmascript sprog specifikation standard.es6   har officielt godkendt og offentliggjort som en standard, den 17. juni 2015 med det ecma generalforsamling.,, ecmascript 6 giver adgang til mange nye elementer, hvoraf mange er   inspireret af coffeescript, herunder som en pil funktioner, generatorer, klasser, og vi tjekkede.  , selv om es6 blev godkendt for nylig du kan bruge det nu ved hjælp af en javascript   ansvarlige, som babelstårnet.,, node pakke manager (new public management), node pakke manager   er den mest populære   pakke manager i verden.antal kolli er   vokser hurtigere end ruby, slange, og java tilsammen.   new public management   kører på node. det, hvorfor   ikke bower?, vælger vi new public management, fordi brugen af både de og new public management i samme projekt er smertefuldt og commonjs støtte med de   er ikke ligetil.   commonjs definerer et modul format til at løse javascript anvendelsesområde uden for browser og   new public management   støtter dette.   commonjs moduler kan være påkrævet med es5 eller es6.,, ////////es5 var vinkel = kræver ('angular), //es6 import vinkel fra "vinkel", webpack, efter min mening   webpack   er spillets regler i   industri, udgang kompliceret grynter eller gulp manuskripter, som du er nødt til at opretholde.webpack giver dig mulighed for at kræve enhver form for dokumentation (. js,. kaffe,. css,. scss,. men heller ikke dér er menneskene sikre, jpg,. perspektivgruppen osv.)   og rør dem   gennem, læssemaskiner,   skabe statisk aktiver, der er   til rådighed for din ansøgning.,, forskellen med mus og sodavand er hovedparten af deres   behov (minification og   udarbejdelse), kan dækkes ved blot at tilføje en konfiguration, der er   ikke nødvendigt at udarbejde manuskripter.for eksempel kræver en fræk fil,   udarbejdelse af det, autoprefixing, og at sprøjte, der følger minified   css i din ansøgning vil blive så enkelt, som det:,, (test: /. scss $/, lader: "stil!css!autoprefixer!siger "}, tror jeg ikke, jeg   skal vise dig den ækvivalente med sodavand eller grynter.jeg tror, i forstår min pointe., 2.forudsætninger, det pædagogiske går ud fra, at du har:,, en grundlæggende viden om   angularjs og   ionisk, en wordpress websted, klar til at blive sat spørgsmålstegn ved (en lokal anlæg er fint), en maskine med node. js,   new public management, bower (, vi får brug for   nogle områder), monteret med så skrive adgang uden sudo, om projektet mappe, 3.anlæg, inden vi begynder,  , du skal bruge for at installere to ting:,, en wordpress stik af, der bliver din blog i   en fredfyldt api, selve ansøgningen, stille api, at hente stillinger til din   wordpress   anlæg, er du nødt til at installere   wp resten api - stik af.sørg for, at du installere version  , 1.2. x, som version   2 x er på vej., i wordpress, gå til, plugins > tilføje nye,., søgen efter  , wp resten api (wp api),., klik, installere nu, til at installere det stik af. hvis   anlæg   vellykket, klik, aktivere stik af, at aktivere den.,, hvis anlægget var vellykket,   åbne en browser og træde   http://example.com/wp-json.dette bør give dem et svar, svarer til den, der nedenfor.,, ("navn": "lorem ipsum blog", "beskrivelse": "bare en wordpress sted", "url: http: //////////////yourdomainname. kom /wp json", "ruter": {} "godkendelse": {} "meta -": {}}, anvendelse, til at installere anvendelse, klon - arkivet, ved anvendelse af følgende kommandoer.,,&#klon - arkivet og give det et navn (her mytutorial) $git klon http://github.com/tutsplus/hybrid-wordpressionicangularjs.git mytutorial&#åbne projektet $cd mytutorial, næste, skabe en konfiguration fil og de tilhørende.,,&#kopi misligholdelse ud til din personlige ud $cp ud /default.config.json ud /config.json&#installere afhængighed $new public management installere, at mfor sikker på, at både anvendelsen og resten   api - arbejde sammen, åben  , ud /ud. json,.det er   din personlige konfiguration dossier, der er   ignoreret af torsk.ændre, base url, af api til en til din wordpress anlæg.,, ("api -": {"baseurl": "http://yourdomainname.com/wp-json"),  , løb, løb devserver new public management og åbne   http: //localhost: 8080 /webpack dev - /  i en browser.hvis alt fungerer som forventet,   du skulle være foran en løbende ansøgning, der viser deres wordpress stillinger.jeg har skabt en demo anvendelse for at give en idé om, hvad de kan forvente.,, nu hvor du kan se resultatet af, hvad vi er ude efter, lad mig gennemgå detaljerne.   bemærke, at   følgende   kode prøverne er forenklet.du kan finde kilden kode på   github.,, 4.afhængighed,,, new public management installere, kommando installeret flere biblioteker.nogle af dem   er direkte   afhængighed, mens   resten er   udvikling   afhængighed, direkte besiddelser, er den direkte besiddelser er områder, at deres ansøgning har brug for med henblik på at køre ordentligt, når bygget.,, "områder" ("ioniske sdk": "^ 1.0.0", wp api - angularjs ":" ^ 1.0.0 "), meddelelse om, at ansøgningen ikke er direkte afhængige af angularjs, fordi ioniske sdk   omfatter allerede angular.js, vinkel livfulde. js,   angular-sanitize.js, og   vinkel - router. js,.,, wp api - angularjs   (wordpress wp api - klient for   angularjs) er et sæt af angularjs tjenesteydelser   at tillade   kommunikationen med resten api - stik af, at de installeres tidligere.kan du se den fuldstændige liste over afhængighed af github.,, udvikling   kolonier, udvikling   afhængighed er for det meste webpack læssemaskiner.læssemaskiner er funktioner, der tager   kilde til en ressource, fil, anvende nogle ændringer, og returnerer den nye kilde.vi har brug for at tage med. scss,. j.s. (es6). html og. json.du kan se en fuldstændig liste over udvikling afhængighed af github. 5.programarkitektur, jeg har udviklet angularjs ansøgninger i lang tid, og efter mange forsøg   jeg har begået følgende struktur: en fil, der kan være udeladt lever under, src /eller /lib, servietter, hver   angularjs modul har brug for en ordentlig mappe, hver   modul fil, *. modul. js,   skal definere en enestående namespace og være det eneste sted, hvor dette namespace synes), hvert modul fil  , *. modul. js,   skal erklære alle sine besiddelser (selv hvis områder allerede er injiceret i app), hver   modul fil   modul, *.  . er, skal erklære alle sine configs, flyveledere, tjenesteydelser, filtre osv. alle ud, finansinspektørens service, filter, osv. skal eksportere en funktion (commonjs), hvis et modul har brug for en særlig stil,den. scss fil må leve under modulet, og disse henstillinger er stærke, som de kan forsikre, at de har løst koblet   moduler, der kan være fælles for flere ansøgninger uden at løbe ind i problemer,.,,, det er, hvad   anvendelsen mappe struktur   ligner:,, l /├── menu /│ └── menu.module.js │ └── menu.html ├── hjem /│ └── home.module.js │ └── home.config.js │ └── home.controller.js │ └── home.html ├── post /│ └── post.module.js │ └── post.config.js │ └── post.controller.js │ └── post.html ├── scss /│ └── _variables.scss │ └── bootstrap.scss ├── index.js ├── index.html, punkt, når der anvendes webpack, en indgang er nødvendig.vores indgang er l /index. js,.den indeholder vores ansøgning er grundlæggende områder (f.eks.  , ioniske. bundt,  , der indeholder angularjs), vores hjemmelavede moduler, og tilføjer den frækhed, indgangssted. //ioner, vinkel & wp-api klient import ioniske sdk /frigivelse /er /ioniske. bundt "import" wp api - angularjs /dist /wp api - angularjs. bundt; //vores moduler fra import modhome. /home /home. modul. js; import fra modpost. /post /post. modul. js; import fra modmenu. /menu /menu. modul. js; //- indgang »import«. /scss /bootstrap ", nu, hvor vi har indført vores afhængighed, vi kan skabe vores ansøgning modul.lad os kalde vores app prototype.det har, ioniske,,  , wp api - angularjs,,   og vores hjemmelavede moduler som afhængighed, //skabe vores prototype modul lad mod = vinkel. - modul ('prototype "[" ionisk, wp api - angularjs, modhome, modmenu, modpost]), når modul   skabt, kan vi   eksport som en standard commonjs modul.,, eksport misligholdelse mod = forsvarsministeriet. navn, det er et godt eksempel på, hvad et angularjs modul skal se ud.,,,,,,, routing vores anvendelse har en side menu, < ion side menu - opfattelse = "menu" >,  , som   den menu, modul vil blive gjort.det har også en   indhold afsnit  , < ion nav opfattelse navn = "indhold" >,  , som  , hjem og post, moduler skal anføres.,,, - mener, at direktiv er en del af eu - erhvervsgrenen router, at ion - anvendelser.det   siger $medlemsstat (eu - erhvervsgrenen router service)  , hvor til at sætte deres modeller.på samme måde er det navn, direktiv knyttet til < ion nav udsigt > er en specialbygget ion - direktiv, der er   ved hjælp af  , eu - erhvervsgrenen synspunkt under.du kan betragte begge direktiver identiske.,,, her er en forenklet udgave af  , rod, stater, stater, der alle moduler, deler:,, eksport misligholdelse funktion ($stateprovider) ('nginject; tilbage $stateprovider. stat ('root "(abstrakt: det er rigtigt, synspunkter: {'." (model: « < ion side menuer > < ion side menu indhold > < ion nav bar klasse = "positive" > < /ion nav bar > < ion nav opfattelse navn = "indhold" > og lt; /ion nav udsigt > < /ion side menu indhold > < ion side menu = "venstre" - side opfattelse = "menu" > < /ion side menu > < /ion side menuer > er}}})}, for flere oplysninger om navngivne synspunkter, der henvises til   dokumentation om github.,, menu modul,,,,, l /├── menu /│ └── menu.module.js │ └── menu. html,,, menu, modul er meget enkel.dens formål er at tilføje en menu i < ion side menu >,.uden at dette modul, side menu er blank.   menuen modul erklærer kun en ud   fil, er det  , ioniske og  , iii. router,   som afhængighed, import modconfig fra. /menu. ud ", lad mod = vinkel. - modul ('prototype. menu", - ion - "," iii. router ']); forsvarsministeriet. ud (modconfig) eksport misligholdelse mod = mod.name;,, de mest interessante er konfiguration.  , vi ønsker ikke at skabe en stat i menuen modul, som det er tilgængelige overalt.vi   dekorere   den  , rod,   stat med menuen indhold.med  , eu - erhvervsgrenens opfattelse = "menu",   defineres i  , rod,   stat, vi har brug for   til brug   menuen @ rod, at henvise til det.,, eksport misligholdelse funktion ($stateprovider) ('nginject. $stateprovider. dekoratør ('views "(stat, forældre) = > (lad synspunkter = moderselskab (medlemsstat); hvis (state.name = = =" rod ") (synspunkter ['menu @ rod"] = (model: kræver (". /menu. html")}} tilbage synspunkter.})}, hjem, modul,,,,, lib /├── hjem /│ └── home.module.js │ └── home.config.js │ └── home.controller.js │ └── hjem. http: //,,. modul. js,,, hjem, modul viser   latests stillinger af din wordpress websted.det er en   ud fil, en   registeransvarlige, og det   afhænger af følgende biblioteker:,,, ioniske,,, -. router, wp api - angularjs,,, import modconfig fra. /home. ud; import fra modcontroller. /home. registeransvarlige«. lad mod = vinkel. - modul ('prototype. hjem "[" ion - "," iii. router, wp api - angularjs']); forsvarsministeriet. ud (modconfig); forsvarsministeriet. controller ('homecontroller, modcontroller) eksport misligholdelse mod = mod.name, hjemme. ud. er det tilføjer et nyt ud. medlemsstat,  , rod. hjem, med /hjem, url, der har en model og en styreenhed (både i modul).,, eksport misligholdelse funktion ($stateprovider) ('nginject. $stateprovider. stat ('root. hjem, (url: "hjem", synspunkter:' indhold @ rod": {model: kræver (". /home en.html), kontrollør: "homecontroller som homectrl"}}})}, hjemme. - controller. js, er dette en forenklet version   i den registeransvarlige logik.den indeholder to funktioner:,,, loadmore: denne funktion   befolker  , vm. stillinger.det bruger   den  , $wpapiposts, service, som er   del af, wp api - angularjs, biblioteket.,, friske: denne funktion   fjerner stillinger og opfordrer  , loadmore,   igen.,, eksport misligholdelse funktion ($anvendelsesområde, $log, $q, $wpapiposts) ('nginject "var vm = det; vm.posts = [...], vm.loadmore = loadmore; vm.refresh = genopfriske; funktion refresh() {vm.posts = ugyldig; loadmore(). endelig (() = > $anvendelsesområde. $udsendelse ('scroll. refreshcomplete')} funktion loadmore() {tilbage $wpapiposts. $getlist(). så ((respons) = > (vm.posts = (vm. stillinger).vm. stillinger. concat (svar. data): response.data. $anvendelsesområde. $udsendelse ('scroll. infinitescrollcomplete)})}}, hjemme. html, modellen er en   ion igen,   direktiv, som giver brugeren mulighed for at lade den side ved at side ned.det har også en   ion uendelige skriftrulle,   direktiv, som kræver,  , loadmore,   funktion, når frem til.stillinger vises ved hjælp af  , ng gentager,   direktiv.,,, tip:, brug, spor af,   udtryk for bedre resultater.det mindsker dom manipulation, når en stilling er ajourførte.,,, < ion udsigt > < ion nav afsnit > hjem < /ion nav afsnit > < ion indhold > < ion igen trække teksten = "træk at genopfriske" - = "homectrl. refresh()" > < /ion genopfriskningstræning > < div klasse = "kort" ng gentager = "post i homectrl.posts spor af post. id" > <!- post - detaljer - > < /div > < ion uendelige rullen øjeblikkelig kontrol = "ægte" den uendelige = "homectrl. loadmore()" > < /ion uendelige rullen > < /ion indhold > < /ion opfattelse >, efter modul,,,,, l /├── post /│ └── post.module.js │ └── post.config.js │ └── post.controller.js │ └── post. html,,, post, modul viser kun en post.   det   har en ud - fil, en   registeransvarlige, og det   afhænger af den samme librairies som, hjem, modul.,, post. modul. js, import modconfig fra. /post. ud; import fra modcontroller. /post. registeransvarlige«. lad mod = vinkel. - modul ('prototype. post "[" ion - "," iii. router, wp api - angularjs']); mod.config (modconfig); forsvarsministeriet. controller ('postcontroller, modcontroller) eksport misligholdelse mod = mod.name, svarende   til hjemmet modul, ud gør en ny stat,  , rod. post, med  , /post /: id,   url.det er også registrerer en holdning og en styreenhed.,, post ud. er, at eksportere misligholdelse funktion ($stateprovider) ('nginject. $stateprovider. stat ('root. post ", (url:" /post /: id ", synspunkter: {indhold @ rod" (model: kræver (". /post. html"), kontrollør: "postcontroller som postctrl"}}})}, post. - controller. js, den registeransvarlige har post, der er specificeret i url  , /post /: id,   via  , $stateparams, service (eu - erhvervsgrenen router tjeneste).,, eksport misligholdelse funktion ($anvendelsesområde, $log, $wpapiposts, $stateparams) (' nginject « var vm =. =) vm.post. $anvendelsesområde. $("$ionicview. ladt, lokalitet); funktion init() ($wpapiposts. $-($stateparams. id). ((reaktion) = > (vm.post = response.data.})}}, post. html, modellen er en   ion spinner,   direktiv, der udviser en rampe, mens der er hentet fra wordpress resten api - grænseflade.når posten er ladt, bruger vi et ioniseret kort at gøre forfatteren avatar, efter afsnit og post - indhold.,,,, tip: brug, bindonce,   udtryk,  ,:,, (indført i vinkel. 1.3)   for at undgå at se data, der ikke vil ændre sig over tid.,, < ion udsigt > < ion nav afsnit > {{postctrl. post. afsnit) < /ion nav afsnit > < ion indhold > < ion spinner ng, hvis = "!postCtrl.post"></ion-spinner> <div class="list card" ng-if="postCtrl.post"> <div class="item item-avatar"> <img ng-src="{{::postCtrl.post.author.avatar}}"> <h2>{{::postCtrl.post.author.name}}</h2> <p>{{::postCtrl.post.date



Previous:
Next Page: