i ember.js: de næste skridt

går i ember.js: de næste skridt,,,,, 1,,,,,,,,, 21,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss., for i min indledende artikel, jeg gik over grundprincipperne for de ember.js rammer og de grundlæggende principper for opbygningen af et ember anvendelse.i denne opfølgning artikel, vi skal dykke dybere ind i bestemte områder af rammer til at forstå, hvor mange af de træk sammen abstrakt kompleksiteten af enkelt side anvendelse udvikling.,,,, en grundlæggende app, jeg har tidligere omtalt, at den letteste måde at få de papirer, du har brug for, er at gå til ember.js github repo og træk den starter kit, og det gælder stadig.det boilerplate kit, omfatter alle de filer, du bliver nødt til at kickstarte din ember erfaring, så sørg for at downloade det fra denne artikel. det interessante er, at de starter kit, er også et godt eksempel på et meget grundlæggende ember app.lad os gå gennem det at få en forståelse af, hvad der foregår.bemærk, at jeg skal grave dybere i specifikke områder senere, så du skal ikke bekymre dig om noget der ikke omgående mening i dette afsnit.det er for at give dig en højtstående forståelse af de funktioner for at dykke ned i detaljerne, åbne,., i din browser, og du vil se følgende:,, velkommen til ember. js,,, rød, gul og blå, er det ikke spændende, det ved jeg godt, men hvis du ser den kode, der gjorde dette, vil du se, at det blev gjort med meget lille indsats.hvis vi ser på "js /app. j 'er", ser vi følgende kode:, app = ember. ansøgning. skabe ((}). app.indexroute = ember. rute. udvide ((setupcontroller: funktion (controller) (controller. sæt ('content, [om, »gul«, blå');}}), på det mest grundlæggende plan en glød app kun har brug for en linje til teknisk set anses for at være en "app":, app = ember. ansøgning. skabe ((}); denne kodeks indeholder et tilfælde af ember anvendelse objekt, der sammen med et standard anvendelse skabelon event - lyttere og anvendelse router.tag en anden og prøver at finde den kode, du normalt ville have en til at skrive for at skabe en global namespace, en client-side skabelon, som binder begivenhed for globale interaktion med brugeren og omfatter historie & statens forvaltning i din kode.ja, det er en linje, er det hele.lad det være klart, men jeg siger ikke, at det gør alt arbejdet for dig, men det er oprettelsen af instituttet vil du bygge på, via en metode. den næste sæt kode opstiller en opførsel af en rute, i dette tilfælde for de vigtigste,., side:, app.indexroute = ember. rute. udvide ((setupcontroller: funktion (controller) (controller. sæt ('content, [om, »gul«, blå]);}}), husker, at ruter, anvendes til at forvalte de midler, der er forbundet med en specifik url i ansøgningen og giver ember at følge de forskellige medlemsstater i forskellige sider.adressen er nøglen til at forstå, at ember bruger identifikator, som anmodningen stat skal indgives til brugeren. i dette tilfælde roden rute er skabt af misligholdelse i ember.jeg kunne også udtrykkeligt fastlagt rute på denne måde:, app. router. kort (function() {. indtægt (indeks, {vej: "/"}); //fører os til & quot; /& quot.}), men ember tager sig af det mig for "rod" på min ansøgning.vi vil tackle ruter i mere detaljeret senere. tilbage til følgende kode:, app.indexroute = ember. rute. udvide ((setupcontroller: funktion (controller) (controller. sæt ('content, [om, »gul«, blå]);}}); i dette tilfælde når en bruger hits stedet root, ember vil fælde en registeransvarlig, som vil lade en stikprøve af data med en semantisk navn, kaldet, indhold.disse data kan senere anvendes i app, via den registeransvarlige med det navn.og det er netop, hvad der sker i index.html,.åbne filen, og du finder følgende:, < manuskript type = "tekst /x-handlebars" data skabelon navn = "indeks" > < h2 > velkommen til ember er < /h2 > < ul > {{# hvert punkt. i model) < li > {{punkt}} < /li > {{/hver}} < /ul > < /manuskript > det er en styret client-side skabelon.husk, at styret er blive bibliotek for ember og er afgørende for at skabe data-driven brugergrænseflader for din app.ember anvender data attributter til at forbinde disse modeller til den registeransvarlige, der forvalter deres data, uanset om de er angivet via en rute eller som en uafhængig kontrollør.i min sidste artikel, jeg nævnte, at navngive konventioner er vigtige i ember, og at de, der forbinder træk let.hvis man ser på den model, kode, vil de se, at navnet på den skabelon (specificeret via data skabelon navn, attribut) er "register".det er målrettet og har til formål at gøre det let for tilslutning til den registeransvarlige, der er specificeret i rute af samme navn.hvis vi ser på den rute, kode igen, vil du se, at det hedder "indexroute" og indeni er registeransvarlige med data, der er fastsat:, app.indexroute = ember. rute. udvide ((setupcontroller: funktion (controller) (controller. sæt ('content, [om, »gul«, "blå"]);}}), den registeransvarlige er et datasource ved navn "indhold" og belastninger, det med en række strenge til flaget.- systemet er din model, og den registeransvarlige, der anvendes til at afsløre, at attributter for den model, at konventioner tillader ember at knytte denne rute er ressourcer (f.eks.: den registeransvarlige med data) til den model, der er angivet af samme navn.dette giver den skabelon, adgang til data udsættes af den registeransvarlige, så den kan gøre det ved hjælp af styret "direktiver.der fra de punkter i nettet er forbundet med anvendelse af styret, hvert direktiv og med angivelse af navnet, model, som viser, at der datasource: {{# hvert punkt i model) < li > {{punkt}} < /li > {{/hver), for at være mere præcis, data er befolket til dynamisk skabt liste over poster og dermed skabe tillægget for dig på det fly.det er det smukke ved client-side skabeloner., jeg tror, at det grundlæggende app, understreger, hvor ember abstracts mange ting til dig.det er lidt sort magi, men det er ikke altid let at forstå, hvordan tingene fungerer.det skete for mig, og det var ikke helt klik på først.når du begynder at forstå forholdet mellem de forskellige komponenter af rammerne, det begynder at give mening.lad os starte fra bunden, for at få en bedre forståelse af det, fra bunden, jeg ganske kort berørt på ember anvendelse genstand, og at det skaber grundlaget for deres ansøgning.den glød vejledninger gøre et godt stykke arbejde for at skitsere, hvad instantiating gløder anvendelse objekt er:,, det er din ansøgning er namespace.alle de klasser i din ansøgning vil blive defineret som egenskaber på dette objekt (f.eks. app.postsview, og app. postscontroller,).dette hjælper med til at forhindre, at forurenende den globale rækkevidde.det tilføjer begivenhed lyttere til det dokument, og er ansvarlig for at sende begivenheder til deres synspunkter.det automatisk gør anvendelsen skabelon, rod mest skabelon, som dine andre modeller vil blive gjort.det skaber automatisk en router og begynder rejsen, baseret på den nuværende url.,, så denne simple erklæring:, app = ember. ansøgning. skabe ((}), tråd op en hel masse grundlæggende stykker, at deres anvendelse vil afhænge af.det er vigtigt at bemærke, at app, ikke er et af nøglepunkterne i ember.det er en normal globale variabel, at du bruger til at definere namespace og kunne være en gyldig variable navn.fra hvad jeg har set, men det variable navn, app, er en almindeligt anvendt konventionen i de fleste ember apps og er faktisk anbefalede, at gøre det lettere at kopiere og pasta meget af prøvens kode, der skabes i fællesskabet. under listen over, hvad ember er via en linje, er i bund og grund skabe denne kodeks for dig automatisk bag kulisserne: //skabe anvendelsen namespace app = ember. ansøgning. skabe ((}); //skabe global router at forvalte side stat via internet - adresser app. router. kort (function() {'); //skabe misligholdelse anvendelse rute til applikationsniveau stat egenskaber app.applicationroute = ember. rute. udvide ((}); //skabe misligholdelse anvendelse skabelon < manuskript type = "tekst /x-handlebars" data templanavnet = "ansøgning" > {{afsætningsmulighed}} < /manuskript >, så de starter kit ikke udtrykkeligt definerer en ansøgning undersøgte router, rute eller skabelon, ember sørget for, at de er skabt, og til, at grundlaget for din app er klar og tilgængelig for dig.det er helt sikkert ikke udtrykkeligt at skabe den kode.faktisk, du ønsker at gøre, så hvis du planlægger at videregive oplysninger eller sæt attributter for eksempel anvendelsen objekt. nu kan du være i tvivl om denne ansøgning model "bliver automatisk gjort, og hvorfor kan du ikke se det, index.html,.det er, fordi det er valgfrit udtrykkeligt at skabe, anvendelse, model.hvis det er i tillægget, ember straks vil gøre det.ellers, det udfører behandling af andre dele af din ansøgning, som normalt.den typiske anvendelse for anvendelsen, model af global anvendelse - brugergrænseflade elementer, såsom brevhoved og footers.om fastsættelse af, anvendelse, model bruger samme stil syntaks, som enhver anden skabelon, bortset fra en lille forskel, nemlig modellen navn skal ikke angives.så om din model, som denne:, < manuskript type = "tekst /x-handlebars" > < h1 > anvendelse skabelon < /h1 > < /manuskript > eller:, < manuskript type = "tekst /x-handlebars" data skabelon navn = "ansøgning" > < h1 > anvendelse skabelon < /h1 > < /manuskript >, giver de samme resultater.ember vil fortolke en model med ingen data skabelon navn, som ansøgningen model og gør det automatisk, når den anvendes.hvis du ajourføre,. ved at tilføje denne kode:, < manuskript type = "tekst /x-handlebars" data skabelon navn = "ansøgning" > < h1 > anvendelse skabelon < /h1 > {{afsætningsmulighed}} < /manuskript > vil du se, at indholdet af header mærke er på toppen af indholdet af indekset skabelon.styret, {{udløb), direktiv tjener som en indikation af en art i anvendelse, model, der gør det muligt at bruge andre modeller i ember (tjener som et dæksblad af mulige), og at du har globale - egenskaber, som f.eks. rør og footers, der omgiver deres indhold og funktion.ved at tilføje den ansøgning, skabelon, index.html, du har instrueret ember:, automatisk gøre, anvendelse, model, sprøjte indeks model til, anvendelse, model via styret, {{udløb), direktiv umiddelbart - processen og gøre, indeks, model,,, vigtig reaktion er, at alle, vi gjorde, var at tilføje en skabelon (anvendelse) og ember straks tog sig af resten.det er disse træk bindinger, der gør ember.js sådan en stærk ramme at arbejde med, at ruter, her er formentlig det mest vanskelige koncept til at forstå i ember, så jeg vil gøre mit bedste for at bryde det ned til overkommelige trin.som bruger navigerer din ansøgning, skal der være en metode til forvaltning af de forskellige dele af brugeren besøg.det er, hvor ansøgningen er router og placering af bestemte ruter, kom ind., ember router formål er det forvalter dette gennem anvendelse af ruter, at identificere de ressourcer, der er nødvendige for specifikation steder.jeg tror, at af routeren som en færdselsbetjent, der styrer biler (brugerne) til forskellige veje (url - adresser & ruter).de ruter, er dem, der er knyttet til specifikke url - adresser og, når der er adgang til url, ruter, ressourcer stilles til rådighed, ser på, er /app.js igen, vil du se, at vejen er blevet skabt for rod - side (indeks):, app.indexroute = ember. rute. udvide ({setupcontroller: funktion (controller) (controller. sæt ('content, [om, »gul«, blå]);}}), men der er ingen router instans.husk, at ember vil skabe en router som standard, hvis du ikke angiver en.det vil også skabe en misligholdelse vej ind til roden af anvendelsen som denne:, app. router. kort (function() {. indtægt (indeks, {vej: "/"})}); det fortæller ember, når årsagen til anmodningen er ramt, det bør lad ressourcer af en rute objekt instans, indexroute, hvis det er til rådighed.det er derfor, selv om ingen router instans erklæret, ansøgningen løber stadig.ember internt ved, at roden rute bør nævnes ved navn, indexroute, vil se på det, og lade sine ressourcer i overensstemmelse hermed.i dette tilfælde er det at skabe en registeransvarlig, som indeholder data, der skal anvendes i indekset skabelon, eftersom ip - adresser er nøglen identifikatorer, der ember anvender ved forvaltningen af staten din ansøgning, som hver har generelt deres egen vej fører angives, hvis midler skal være lastet til den del af programmet.her er, hvad jeg mener, går ud fra, at du har en app med tre dele:,, hensyn til: (http: /højde), profil (url: http: ///profil), galleri (url: http: ///loge), i de fleste tilfælde hvert af disse afsnit har sin egen unikke ressourcer, der skal være lastet (f.eks.: data eller billeder).så du vil skabe rute, som anvender, resource(), metode i ember ansøgning router objekt f.eks. sådan, app. router. kort (function() {. indtægt (regnskaber '); dette. indtægt (profiler); denne. indtægt (officielle)}), giver dette ember at forstå strukturen i anvendelse og forvaltning af ressourcer i overensstemmelse hermed.ruterne definitioner vil sammen til individuelle vej imod eksempler, som faktisk gør det hårde arbejde, som etablerer eller sammenkobling kontrollører:, app.galleryroute = ember. rute. udvide ((setupcontroller: funktion (controller) (controller. sæt ('content, ['pic-1. men heller ikke dér er menneskene sikre, pic-2. men heller ikke dér er menneskene sikre, pic-3. men heller ikke dér er menneskene sikre "]);}}), så i ovenstående eksempel, når en bruger besøg" /galleri ", ember.js instantiate den galleryroute rute objekt, fælde en registeransvarlig med data og gøre, galleri, model.igen, dette er grunden til, at konventioner er så vigtige i ember. din ansøgning kan også have indlejrede url - adresser, som /højde /nye, i disse tilfælde kan du definere ember ressourcer, der gør det muligt for dem at gruppe ruter, som så:, app. router. kort (function() {. indtægt ("regnskaber, function() {. rute (ny)})}). i dette eksempel, vi brugte den, resource(), metode til gruppe ruter og, route(), en metode til at fastlægge ruter inden for gruppen.den generelle regel er at anvende, resource(), navneord (regnskaber og hensyn til begge midler, selv når indlejrede), og route() for modifikatorer: (verber, nye og redigere eller adjektiver, som favoritter, og gik,). bortset fra koblingen af ruterne, ember bygger indre henvisninger til den registeransvarlige, ruter og modeller for hver enkelt af de gruppe ruter, der er angivet.det er, hvad det ville ligne (og igen den berører ember navn konventioner): "/konti":,, kontrollør: accountscontroller, rute: accountsroute, model: regnskaber (ja det er små), "/regnskaber /nye":,, kontrollør: accountsnewcontroller, rute: accountsnewroute, model: konti /nye, når en bruger besøg "/regnskaber /nye", der er lidt af en forældre /barn eller master /detaljeret scenario, som finder sted.ember vil først sikre, at ressourcerne til, regnskaber, er til rådighed og gøre, regnskaber, model (her er den store del af det).det vil derefter opfølgning og gøre det samme for "/regnskaber /nye", oprettelse af ressourcer og gøre det, accounts.new, model. bemærk, at ressourcer kan også indføjes for langt dybere url strukturer, som denne:, app. router. kort (function() {. indtægt (regnskaber, function() {denne. rute (ny); denne. indtægt ("billeder", function() {. rute (der)})})}), næste skridt, jeg har dækket en del materiale i denne post.forhåbentlig, har bidraget til at gøre nogle af de aspekter af, hvordan en glød anvendelse fungerer, og hvordan ruter arbejde. vi er ikke færdige endnu, selv om.i det næste, jeg vil dykke ned i ember har træk til at trække data og stille dem til rådighed med din app.det er, hvor modeller og kontrollører komme, så vi vil fokusere på at forstå, hvordan de to arbejde sammen.



Previous:
Next Page: