Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Creare un component

Occupiamoci ora della creazione di un component deputato a mostrare la lista dei prodotti e il pulsante per inserirne di nuovi nella nostra applicazione basata su Angular e PHP.
Occupiamoci ora della creazione di un component deputato a mostrare la lista dei prodotti e il pulsante per inserirne di nuovi nella nostra applicazione basata su Angular e PHP.
Link copiato negli appunti

Nella lezione precedente è rimasta in sospeso la definizione del component associato al path:'home' nel file di routing, completiamo questo passaggio in modo da non avere errori nella nostra applicazione.

Generiamo quindi il component, potremmo eseguire questa operazione manualmente creando i file necessari uno a uno, oppure, modalità decisamente più veloce, possiamo procedere tramite linea di comando sfruttando la CLI. L'istruzione per la creazione del component sarà:

ng g component prodotti/read-products

Questo comando creerà dentro la cartella prodotti una cartella read-products e dentro questa 4 file:

  • La classe con la definizione del component.
  • Il template.
  • Il foglio di stile.
  • Un file ts per gli unit test.

Tutti questi file avranno come nome read-products.component e l'estensione relativa al tipo di file.

Oltre alla creazione dei file, il component viene registrato nell'App module e sarà quindi importato e aggiunto alla lista delle declaration. Andremo poi a modificare manualmente il file di routing importando il component anche in questo modulo in modo che possa essere utilizzato:

import {ReadProductsComponent} from './products/read-products/read-products.component';

A questo punto il file di routing è completo e pronto per l'uso.

Ora possiamo concentrarci sul nuovo component. Un component è una classe TypeScript che viene esportata in un modulo. Normalmente viene arricchita, decorata, da un template HTML e, se necessario, da un foglio di stile. Per chi ha lavorato con Angular 1.x il concetto più simile è quello di una direttiva con un template e un controller, ora invece il concetto di controller non esiste più: al posto di scope e controller abbiamo il solo component.

Lo scopo di questo component sarà mostrare la lista dei prodotti e il pulsante per inserirne di nuovi, possiamo quindi preparare l'HTML allo scopo e testare il funzionamento. Per risolvere velocemente il problema dell'estetica ci appoggeremo al CSS di Bootstrap: per fare questo apriamo index.html e aggiungiamo la riga:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

Ora invece apriamo il file read-products.component.html e inseriamo la parte statica dell'HTML della pagina: ricordiamo che sarà una porzione di markup che verrà montato con una richiesta asincrona dopo il router-outlet che abbiamo nel component home dell'applicazione:

<article>
<div class="row m-b-18px">
 <div class="col-md-12">
   <a routerLink="/create" class='btn btn-primary pull-right'>
     <span class='glyphicon glyphicon-plus'></span> Crea Prodotto
   </a>
 </div>
</div>
<div class="row">
 <div class="col-md-12">
   <table class='table table-hover table-responsive table-bordered'>
     <tr>
       <th>Prodotto</th>
       <th>Prezzo</th>
       <th>Descrizione</th>
       <th>Categoria</th>
       <th>Azioni</th>
     </tr>
   </table>
 </div>
</div>
</article>

Il primo blocco di codice contiene il link, non ancora gestito dal routing, alla creazione di un nuovo prodotto, in questo caso è da notare l'attributo routerLink al posto del classico href: si tratta di una direttiva di Angular gestita dal modulo Router che semplifica la costruzione dei link quando entra in gioco il passaggio dei parametri con tutte le problematiche connesse.

La seconda porzione di codice contiene l'intestazione della tabella dove andremo a visualizzare i record: è una classica tabella HTML formattata con le classi di Bootstrap.

Possiamo testare il funzionamento del codice prodotto fino qui: portiamoci all'interno della cartella contenente il frontend del nostro progetto e digitiamo ng serve. Questo comando come prima cosa esegue il transpile dei file TypeScript in file JavaScript in base alla configurazione che abbiamo impostato.

Quindi vedremo comparire nel progetto dei file *.js e, avviando il Web server sulla porta 4200, potremo digitare nel browser l'URL:

http://localhost:4200

Ti consigliamo anche