styrkelse af web - applikationer med amplifyjs

, forbedre web apps med amplifyjs,,,,, andel,,,,,,,, 33,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' ikke glip af, synes der at være en ny afgrøde af særlige javascript biblioteker hver uge.væk, lader det til, er de dage, kun ved hjælp af et bibliotek, pr. projekt.i dag vil jeg introducere dig til en meget cool komponent bibliotek, amplifyjs, det er bare et par meget specialiserede komponenter.,,,, devs, mød amplifyjs ifølge hjemmesiden:,, amplifyjs er et sæt komponenter, der er konstrueret til at løse fælles webapplikationen problemer. det lyder fornemt, men det er faktisk i denne biblioteket?amplifyjs består af tre dele:,,, en ajax api, en pubsub begivenhed system, en klient side oplagring api, med mig for en tur i den utrolige amplifyjs bibliotek!vi skal bygge et super enkelt ansat tracker, det er bare en tabel med et par app som karakteristika, høflighed (delvis) af amplifyjs., at vi ikke behøver at beskæftige os med design og layout spørgsmål i dag, så jeg vil bruge twitter bootstrap bibliotek.det er meget simpelt: kun omfatter, link til css - fil, som de lader dig hotlink fra github, og du er i erhvervslivet.,, trin 1: oprettelse af den, så gør dig selv et projekt, fortegnelse.begynd med,., fil, og et er, mappe.gå over til amplifyjs websted og klik på den store, røde "download" knappen.når du har biblioteket lukker, ekstrakt, og flytte ind i, er, mappe.vi skal bruge et par andre ting også:,, jquery: hvad er ajax komponent anvendelser jquery er ajax træk under det er api - i det mindste ved misligholdelse.men vi vil bruge jquery for andre ting, så tag den på.,, bootstrap modal. js,: twitter - bootstrap bibliotek indeholder et par manuskripter til at få alle interaktive.og vi skal bruge en: den modale vindue jquery stik af.downloade det, og tilføje, at det er, mappe. der er to andre manuskripter, som jeg vil nævne på vejen, men vi skal skrive, så begynder vores,., fil som denne:, <!DOCTYPE HTML> <html> <head> <title>AmplifyJS</title> <link rel='stylesheet' href='http://twitter.github.com/bootstrap/1.3.0/bootstrap.min.css' /> </head> <body> <div class='container'> <div class='row'> <div class='span16' id='alert-area'> </div> </div> <div class='row'> <div class='span4'> <h2>Commands</h2> </div> <div class='span12'> <h1>Employees</h1> </div> </div> </div> <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js'></script> <script src ='js /forstærke /forstærke. min.js "> < /manuskript > < manuskript src ='js /bootstrap modal. er" > < /manuskript > < /organ > < /html > hvis du er ikke vant til at bruge twitter bootstrap, vil du se at det er pærelet at bruge.vi har en beholder, der er 940px bredt.så har vi to, ro, s. den første er en kolonne, der omfatter alle 16, kolonne.de andre har to kolonner: det ene er 4 kolonner bredt, og man er 12 kolonner bredt. en ting mere, før vi kommer til nogle rigtige koder: vi skal dukke op en modal vindue, der tillader op til input - ansatte.i henhold til, < div klasse ='container ">,, tilføje denne modale vindue html.Yes, it seems like a lot code, but it’s mainly Bootstrap stuff:,<div id='add-employee-modal' class='modal fade'> <div class='modal-header'> <a href='#' class='close'>x</a> <h3>Add an Employee</h3> </div> <div class='modal-body'> <form id='employee-form'> <div class='clearfix'> <label for='firstName'>First Name:</label> <div class='input'><input type='text' name='firstName' placeholder='John' /></div> </div> <div class='clearfix'> <label for='lastName'>Last Name:</label> <div class='input'><input type='text' name='lastName' placeholder='Doe' /></div > < /div > < div klasse ='clearfix "> < etiket til ='role" > navn: < /etiketten > < div klasse ='input "> < input type ='text" navn ='role 'indikation af en art ='designer /> < /div > < /div > < /form > < /div > < div klasse ='modal-footer "> < knap id ='create-employee" klasse ='btn primære "> der tilsættes < /knap > < /div > < /div >, okay, vi er klar til at gå!lad os koden.,, trin 2: ledninger modal vindue, åbne, manuskript, tag på bunden af. - jeg gør kun dette i overensstemmelse, men mener, at sætte den i en ny er fil).start på denne måde: (funktion () (var - employeemodal = $('# tilføje ansat modal). modal ({baggrund: statiske'})} (), vi bruger bootstrap modal stik af, det bare "instantiates" modal vindue.nu vil vi have vinduet ud, når vi klik "tilføje arbejdstager" knappen.vi er selvfølgelig nødt til at tilføje den knap første: sætter dette i, < div klasse ='span4 ">,, lige under, < h2 >,., < p > < knap id ='add-employee data kontrol modal ='add-employee-modal »klasse ='btn" > der tilsættes ansat < /knap > < /p >,, at data kontrol modal ='add-employee-modal, attribut viser modal med id, når dosisknappen er trykket.,, så brugeren skal udfylde en formular. klik på "tilføjes" knap, som er identificeret, skabe ansat.så lad os tråd op et klik tilfælde fører til knap: $('# skabe ansat). klik (funktion () (var - form = $('&#ansat form '); employeemodal. modal (gem); medarbejder. skabe (formular. finde ([navn] = firstname'). val(), form. finde (= lastname [navn] «). val(), form. finde ([navn] = rolle '). val()); form. finde ('input). val (');}), vi får den form, og så gemme modal vindue.så kommer vi til at ringe til en, employee.create, metode, passerer det første navn, efternavn og rolle som de tre parametre.endelig er vi klar form.,, forstærke. offentliggør, men vent, siger du, det er ansat. skabe?- det er en mikro - "gruppe", som jeg har stillet, er /ansat. js,.tjek det ud, var ansat = {skabe: funktion (firstname, lastname rolle) {var ansat = (firstname: firstname, lastname: lastname rolle: rolle, dateemployed: nye date()}; forstærke. offentliggøre ('employee-created, ansat); tilbage arbejdstager;}}, du skal smide et manuskript, tag det op med de andre. meget simpelt, ikke?vi skaber et objekt bogstaveligt med vores parametre, og tilføje, dateemployed, ejendom.men, så, og endelig!- vi har den første indgang i amplifyjs rammer.her bruger vi den pub /regionale arrangementer komponent.det er godt for løs kobling mellem dele af din app.denne metode ikke er nødt til at vide, om en anden del af vores kode ønsker at gøre noget med hver ny medarbejder, skaber vi vores "tilføjes" knap begivenhed ikke behøver ikke at bekymre dig om det.vi vil bare udgive den som en "arbejdstager skabt" begivenhed for enhver, der er interesseret i at tage.vi giver vores nye medarbejder genstand som data for alle interesserede.så vender vi tilbage til den ansatte objekt (selv om vi ikke styr på det i vores tilfælde kontaktperson).,, trin 3: reagerer med, amplify.subscribe, så er enhver anden del af vores app interesseret i "ansat skabt"?ja, faktisk.vi ønsker at gøre to ting.første, tilføje denne medarbejder til et bord på vores side.det andet vil vi opbevarer de ansatte i localstorage.her er den første del af det:, forstærke. abonnement ('employee-created, funktion (arbejdstager) (employeetable. der tilsættes ([employee.firstname, employee.lastname, employee.role, ansat. dateemployed]); newalert ('success "," nye medarbejder tilføjet)}), til at tegne en begivenhed, vi kalder, supplere. - tegne.vi ønsker at abonnere på "ansat skabt", når begivenheder indtræffer, vi vil gerne have det til, employeetable,; bemærker, at der i stedet for bare at de ansatte, genstand, vi omdanne det til et system; det er, fordi vi er nødt til at være sikker på at de elementer, vil være i den rigtige rækkefølge.så vil vi lægge en besked, at lade vores brugeren ved, at arbejdstageren er tilsat med succes. hvad er det, employeetable, variable?først skal vi tilføje, < tabel >, at vores dokument.So, underneath our “Employees” ,<h1>,, add this:,<table id='employee-table' class='zebra-striped'> <thead> <tr> <th> First Name </th> <th> Last Name </th> <th> Role </th> <th> Date Employed </th> </tr> </thead> <tbody> </tbody> </table>,Now, we have to capture this table as a variable up in our ,var, statement at the top:,employeeTable = TABLE.create($('#employee-table')),,And ,TABLE,? det er den sidste del af det for dette puslespil.Put this in ,js/table.js, and don’t forget the script tag:,var TABLE = { proto : { init : function (el) { this.element = $(el).find('tbody'); }, add: function (arr) { var row = $('<tr>').html(function () { return $.map(arr, function (value) { return '<td>' + value + '</td>'; }).join(''); }); this.element.append(row); }, load: function (rows, order) { for (var i = 0; rows[i]; i++ ) { this.add(rows[i]); } var fields = []; for (var j = 0; order[j]; j++) { fields.push(rows[i][order[j]]); } det. der tilsættes (felter)}, klart: funktion () {. element. empty();}}, skabe: funktion (el) (var - tabel = objekt. skabe (. proto); tabel. lokalitet (el); tilbage tabel;}}; det er en smule indviklet, men du skal have noget problem grokking.vi har en prototype, fast ejendom, der er prototypen på vores bord tilfælde.derefter, når vi kalder, skabe, vi bruger, object.create, at skabe et objekt, der arver fra denne. proto -,.efter det, vi kalder den lokalitet, en metode til at fastsætte nogen egenskaber.endelig vender vi tilbage til bordet, f.eks.det mikro - api - gør det let for os at arbejde med vores bord.du burde være i stand til at se, hvordan passerer et system til tilføje, metode vil tilføje en række til vores bord.Notice also that we can pass an array of rows to ,load, and fill the table up; we’ll use this soon.,Oh, then there’s the ,newAlert, method we called:,function newAlert (type, message) { $('#alert-area').append($('<div class='alert-message ' + type + ' fade in' data-alert><p> ' + message + ' </p></div>')); setTimeout(function () { $('.alert-message').fadeOut('slow', function () { this.parentNode.removeChild(this); }); }, 2000); },As you can see, this just simply adds a ,div, inside out ,<div id='alert-area'>,; the new ,div, takes advantage of the Twitter Bootstrap alert styling; after two seconds, we fade the alert out and remove it.,,amplify.store,,But that’s not the only think we want at gøre, når de "arbejdstager skabt" begivenhed indtræffer:, employeestore = forstærke. lagre ('employees')



Previous:
Next Page: