Sembra che ci sia un nuovo raccolto di librerie JavaScript per scopi speciali ogni settimana. Sono finiti, sembra, i tempi di utilizzo di una sola libreria per progetto. Oggi vi presenterò una libreria di componenti molto interessante, AmplifyJS, che offre solo alcuni componenti molto specializzati.
Secondo il sito web:
AmplifyJS è un insieme di componenti progettati per risolvere problemi di applicazioni Web comuni.
Sembra prestigioso, ma in realtà in questa biblioteca?
AmplifyJS ha tre parti principali:
Unisciti a me ora per un tour nell'incredibile libreria di AmplifyJS! Costruiremo un inseguitore super-semplice dei dipendenti; in realtà, è solo un tavolo con alcune caratteristiche simili ad app, cortesia (in parte) di AmplifyJS.
Oggi non abbiamo davvero bisogno di occuparci dei problemi di stile e layout, quindi userò la libreria di Bootstrap di Twitter. È incredibilmente semplice: basta includere il collegamento
al file CSS, che ti permettono di collegarti da Github e tu sei in affari.
Quindi, renditi una directory di progetto. Inizia con il index.html
file e a js
cartella. Ora vai al sito web di AmplifyJS e fai clic su questo enorme, rosso? Download? pulsante. Una volta, hai la libreria zip, estraila e spostala nel js
cartella. Avremo bisogno anche di altre cose:
bootstrap-modal.js
: La libreria di Bootstrap di Twitter include alcuni script per ottenere tutto interattivo. E ne useremo uno: il plugin jQuery per la finestra modale. Scaricalo e aggiungilo a quello js
cartella.Quindi, inizia il nostro index.html
file come questo:
AmplifyJS comandi
I dipendenti
Se non hai familiarità con l'uso di Twitter Bootstrap, vedrai che non è un problema usare. Abbiamo un contenitore
è largo 940 px. Quindi, ne abbiamo due riga
S. Il primo ha una colonna, che copre tutte le 16 colonne. L'altro ha due colonne: una è larga 4 colonne e una è larga 12 colonne.
Ancora una cosa, prima di arrivare ad un vero codice: apriremo una finestra modale che consente di inserire i dipendenti. Sotto il Va bene, siamo pronti per partire! Facciamo codice. Apri a Qui stiamo usando il plugin modale Bootstrap; questo solo? istanzia? la finestra modale. Ora vogliamo che la finestra appaia quando clicchiamo su Aggiungi dipendente? pulsante. Ovviamente, dovremo prima aggiungere il pulsante: mettilo nel Quello Quindi, l'utente dovrà compilare il modulo, fare clic su? Aggiungi? pulsante che ha un ID di Otteniamo il modulo e quindi nascondiamo la finestra modale. Quindi, chiameremo un Ma aspetta, tu dici, cosa c'è Dovrai lanciare un tag script per farlo apparire con gli altri. Abbastanza semplice, vero? Creiamo solo un oggetto letterale con i nostri parametri e aggiungiamo a Questo metodo non deve sapere se un'altra parte del nostro codice vuole fare qualcosa con ogni nuovo dipendente che creiamo; Il nostro? Aggiungi? il gestore di eventi del pulsante non deve preoccuparsene. Lo pubblicheremo semplicemente come "creato da un dipendente"? evento per ogni parte che è interessata a prendere. Passiamo il nostro nuovo oggetto dipendente come dati per chiunque sia interessato. Quindi, restituiamo l'oggetto dipendente (anche se non ne teniamo traccia nel gestore eventi). Così, è qualsiasi altra parte della nostra app interessata al? dipendente creato ?? Sì, infatti. Vogliamo fare due cose. Innanzitutto, aggiungi questo dipendente a un tavolo sulla nostra pagina. In secondo luogo, vogliamo archiviare il dipendente in localStorage. Ecco la prima parte di questo: Per iscriversi ad un evento, chiamiamo Che succede con questo Ora, dobbiamo catturare questo tavolo come una variabile nel nostro E È un po 'complicato, ma non dovresti avere problemi a farlo. Abbiamo un Questa micro-API ci facilita il lavoro con il nostro tavolo. Dovresti essere in grado di vedere come passare un array al Oh, poi c'è il '+ messaggio +' Come puoi vedere, questo semplicemente aggiunge un Ma questo non è l'unico pensiero che vogliamo fare quando il "dipendente" creato? evento si verifica: In cima, con le nostre altre due variabili, rendi la terza e ultima: Ora stiamo usando il componente di archiviazione di AmplifyJS. In realtà non potrebbe essere più semplice: per memorizzare un valore, passare Quindi, qui aggiungiamo un nuovo dipendente all'array e memorizziamo l'array nei? Impiegati? chiave. Dovrei notare che poiché stiamo memorizzando un array, AmplifyJS sta usando la serializzazione JSON per convertire quell'array in una stringa. Pertanto, se stai cercando di supportare i browser senza supporto JSON nativo (IE 5 e versioni precedenti, Firefox 3 e versioni precedenti), ti consigliamo di includere la libreria json2.js. Nel nostro piccolo esempio di app, stiamo dicendo che, per impostazione predefinita, i dati che inserisci nell'app vengono conservati solo sul tuo computer (in quell'unico browser). Tuttavia, se l'utente vuole, gli consentiremo di metterlo sul server (ipoteticamente, si tratta di informazioni private che potrebbero non voler condividere, tuttavia, se vogliono accedervi da altri dispositivi, potrebbero farlo. ). Inizieremo aggiungendo un pulsante per il caricamento dei dati. Ora, naturalmente, le tue brillanti menti hanno già capito che utilizzeremo il componente AJAX di AmplifyJS. Fare AJAX con AmplifyJS è un po 'diverso rispetto ad altre librerie: l'idea è che prima si definisce una connessione al server; quindi, è possibile utilizzare quella connessione tutte le volte successive. Iniziamo definendo una connessione, chiamata "risorsa"? di AmplifyJS: Il primo parametro qui è Infine, abbiamo un oggetto opzioni. Secondo la documentazione, le tue opzioni di impostazione sono qualsiasi cosa tu possa impostare Certo, avremo bisogno di un semplice PHP sul back-end; assicurati che il Ora, che ne dici di utilizzare la connessione, la risorsa, che abbiamo definito? Bene, facciamolo in un gestore di clic per questo Quando si utilizza la risorsa, il primo parametro è l'ID della risorsa; è lo stesso ID di risorsa che abbiamo la risorsa che abbiamo definito, quindi AmplifyJS sa quale usare. Secondo, passiamo l'hash dei dati. In questo caso, passiamo il contenuto nel nostro negozio, sotto la chiave? Impiegati.? Il parametro finale è una funzione chiamata quando otteniamo una risposta. Una volta ricevuta una risposta, pubblicheremo i dati? evento. Quindi, avvertiremo l'utente che ha funzionato: Bene, questa è la nostra piccola app di esempio. Abbiamo esaminato l'utilizzo di tutti e tre i componenti di AmplifyJS: Allora, quali sono le tue opinioni su AmplifyJS? Mi piace? Trovarlo troppo ridondante? Sentiamolo nei commenti!Aggiungi un dipendente
Passaggio 2: cablaggio della finestra modale
copione
etichetta in fondo a index.html
(Sto solo facendo questo inline, ma sento di metterlo in un nuovo file JS). inizia in questo modo: (function () var employeeModal = $ ('# add-employee-modal'). modal (backdrop: 'static'); ());
.
data-controlli-modal = 'add-impiegato-modale'
l'attributo mostrerà il modale con detto ID quando si fa clic sul pulsante.creare-dipendente
. Quindi, colleghiamo un gestore di eventi click per il pulsante:$ ('# create-employee'). click (function () var form = $ ('# employee-form'); employeeModal.modal ('hide'); EMPLOYEE.create (form.find ('[nome = firstName] '). val (), form.find (' [name = lastName] '). val (), form.find (' [nome = ruolo] '). val ()); form.find (' input ') .val ("););
EMPLOYEE.create
metodo, passando il nome, il cognome e il ruolo come i tre parametri. Alla fine, cancelliamo il modulo.amplify.publish
EMPLOYEE.create
? Bene, è un micro-? Classe? che ho messo dentro JS / employee.js
. Controlla:var EMPLOYEE = create: function (firstName, lastName, role) var employee = firstName: firstName, lastName: lastName, ruolo: role, dateEmployed: new Date (); amplify.publish ('dipendente creato', impiegato); restituire dipendente; ;
dateEmployed
proprietà. Ma allora - e finalmente! - abbiamo il primo ingresso nel framework AmplifyJS. Qui, stiamo usando il componente pub / sotto eventi. Questo è ottimo per fare un accoppiamento lento tra parti della tua app.
Step 3: Reagire con
amplify.subscribe
amplify.subscribe ('employee-created', function (employee) employeeTable.add ([employee.firstName, employee.lastName, employee.role, employee.dateEmployed]); newAlert ('success', 'New Employee Added') ;);
amplify.subscribe
. Vogliamo iscriversi al? Dipendente creato ?; quando si verificano tali eventi, vogliamo aggiungerlo al employeeTable
; notare che invece di limitarsi a passare il dipendente
oggetto, convertiamo? a un array; questo perché abbiamo bisogno di essere sicuri che gli elementi saranno nel giusto ordine. Quindi, vogliamo visualizzare un messaggio, facendo sapere al nostro utente che il dipendente è stato aggiunto con successo.employeeTable
variabile? Bene, in primo luogo, dobbiamo aggiungere il al nostro documento. Quindi, sotto i nostri? Impiegati?
, Aggiungi questo:
Nome di battesimo Cognome Ruolo Data di lavoro var
dichiarazione in alto:employeeTable = TABLE.create ($ ('# employee-table'))),
TAVOLO
? Questo è l'ultimo pezzo di JS per questo puzzle. Mettilo dentro js / table.js
e non dimenticare il tag dello script:var TABLE = proto: init: function (el) this.element = $ (el) .find ('tbody'); , aggiungi: function (arr) var row = $ ('
') .html (function () return $ .map (arr, function (value) return' '+ valore +' '; ). join (");); this.element.append (row);, load: function (rows, order) per (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]]); this.add (fields );, clear: function () this.element.empty ();, create: function (el) var table = Object.create (this.proto); table.init (el); return table; ; proto
proprietà che è il prototipo per le nostre istanze di tabella. Quindi, quando chiamiamo creare
, noi usiamo Object.create
per creare un oggetto che eredita da this.proto
. Dopo ciò, chiamiamo il dentro
metodo per impostare qualsiasi proprietà. Infine, restituiamo l'istanza della tabella. Inserisci
il metodo aggiungerà una riga alla nostra tabella. Si noti inoltre che possiamo passare una serie di righe a caricare
e riempire il tavolo; lo useremo presto.newAlert
metodo che abbiamo chiamato:function newAlert (type, message) $ ('# alert-area'). append ($ ('
div
alla rovescia div
sfrutta lo stile di avviso di Bootstrap di Twitter; dopo due secondi, svaniamo l'allarme e lo rimuoviamo. amplify.store
employeeStore = amplify.store ('dipendenti') || [];
employeeStore
. Se amplify.store (dei dipendenti ')
restituisce qualcosa, lo useremo; altrimenti, useremo un array vuoto.amplify.subscribe ('impiegato-creato', funzione (impiegato) employeeStore.push (impiegato); amplify.store ('dipendenti', impiegatoStore););
amplify.store
una chiave e il valore. Per recuperare il valore, consegnalo alla chiave. Sotto, AmplifyJS sta memorizzando quella chiave e valore in qualsiasi tipo di archiviazione disponibile su quel browser.
Passaggio 4: salvataggio sul server (con
amplify.request
)
amplify.request
è un'API incredibilmente flessibile e non guarderemo a tutto ciò che può fare. Tuttavia, avrai una buona sensazione di come funziona qui.amplify.request.define ('pushData', 'ajax', url: 'data.php', digitare: 'POST');
ResourceId
, che stiamo impostando come? pushData ?; questo è il modo in cui faremo riferimento alla nostra connessione quando la usiamo. Il secondo parametro è il tipo di richiesta; in questo caso,? ajax.? Questo è l'unico tipo di richiesta incorporato in AmplifyJS; puoi aggiungere il tuo, ma questo è adatto alle nostre esigenze di oggi.jQuery.ajax
, così come nascondiglio
(che consente di impostare una memoria cache personalizzata) e decoder
(per analizzare la risposta AJAX). Nel nostro caso sono necessarie solo due opzioni: la url
, e il genere
di richiesta che stiamo facendo.dati
la cartella è scrivibile.data.php
:
$ ('# push-data'). click (function () amplify.request ('pushData', dipendenti: amplify.store ('dipendenti'), funzione (dati) amplify.publish ('data-pushed ', dati);););
amplify.subscribe ('data-pushed', function () newAlert ('success', 'Dati inviati correttamente al server'););
Facendo un passo avanti
amplify.publish / amplify.subscribe
, amplify.store
, e amplify.request
. Abbiamo coperto praticamente tutto quello che c'è da sapere sul pubub e sulle parti del negozio (lì è un po 'di più!), ma c'è a lotto più che puoi fare con l'API di richiesta. Quindi, vai a controllare il sito Web per saperne di più!