Beginner's Guide to Angular 4 Servizi

Nella prima parte della serie di tutorial per principianti della serie angolare, hai appreso quali componenti sono presenti in Angular 4 e come scrivere componenti angolari. 

In questa parte della serie di tutorial, imparerai quali servizi sono disponibili in Angular e come utilizzarli.

Iniziare

Inizierai clonando il codice sorgente dalla prima parte della serie di tutorial.

git clone https://github.com/royagasthyan/AngularComponent.git

Una volta ottenuto il codice sorgente, accedere alla directory del progetto e installare le dipendenze richieste.

cd AngularComponent npm install

Dopo aver installato le dipendenze, avviare l'applicazione digitando il seguente comando:

ng servire

Dovresti avere l'applicazione in esecuzione su http: // localhost: 4200 /.

Cosa sono i servizi angolari?

In un'applicazione Angolare, i componenti gestiscono la presentazione dei dati alla vista. Il recupero dei dati per i componenti da visualizzare viene gestito dai servizi angolari.

Poiché la porzione di recupero dei dati viene gestita separatamente nei servizi angolari, semplifica la simulazione dei servizi di test.

Perché i servizi angolari?

Dalla documentazione ufficiale:

I componenti non dovrebbero recuperare o salvare i dati direttamente e certamente non dovrebbero presentare consapevolmente dati falsi. Dovrebbero concentrarsi sulla presentazione dei dati e delegare l'accesso ai dati a un servizio.

In questo tutorial, vedrai come creare un servizio Angolare per il recupero dei dati per un componente Angolare. 

Un altro vantaggio dell'utilizzo dei servizi angolari è che facilita la condivisione dei dati tra due componenti separati. 

Creazione di un componente di Word

In questo tutorial, creerai un componente di parole che cercherà la parola di query immessa dall'utente finale rispetto a un'API e restituirà il risultato della ricerca.

Farai la chiamata all'API utilizzando un servizio Angolare. Quindi, iniziamo creando un componente angolare.

Passare alla directory del progetto e creare una cartella chiamata parola

Dentro il parola directory di progetto, creare un file chiamato word.component.html. Aggiungi il seguente codice HTML:

Componente di Word

Crea un file chiamato word.component.ts che controllerebbe il word.component.html modello. Ecco come appare:

importare Component da '@ angular / core'; @Component (selector: 'word', templateUrl: 'word.component.html', styleUrls: ['word.component.css']) export class WordComponent costruttore ()  

Come visto nel codice sopra, hai appena creato il WordComponent classe che controllerebbe il word.component.html file di modello.

Ha un @componente decoratore dove hai definito il selettore usando quale sarebbe accessibile, il TemplateURL, e il componente styleUrls.

Una volta creato il componente, è necessario aggiungere la classe del componente al NgModule.

Apri il app.module.ts file all'interno del src / app directory e importa il nuovo WordComponent.

importare WordComponent da './word/word.component'

Includi il WordComponent dentro il NgModule dichiarazioni. Ecco come app.module.ts aspetto del file:

importare BrowserModule da '@ angular / platform-browser'; import NgModule da '@ angular / core'; importare AppComponent da './app.component'; import CalcComponent da './calc/calc.component' import WordComponent da './word/word.component' import FormsModule da '@ angular / forms'; @NgModule (dichiarazioni: [AppComponent, CalcComponent, WordComponent], importa: [BrowserModule, FormsModule], provider: [], bootstrap: [AppComponent]) classe di esportazione AppModule  

Apri il app.component.html file all'interno del src / app cartella e aggiungi il nuovo WordComponent usando il selettore definito. Ecco come appare:

Salvare le modifiche precedenti e riavviare il server. Si dovrebbe avere il componente di parola visualizzato durante il caricamento dell'applicazione.

Creazione del servizio di Word

Creiamo un servizio Angolare per interrogare la parola rispetto a un URL di servizio che restituirebbe i sinonimi della parola.

Utilizzerai l'API Datamuse per interrogare una parola chiave.

Crea un file chiamato word.service.ts dentro il src / app / parola cartella. Userai il @Injectable () decoratore per rendere disponibile la classe di servizio per l'iniezione.

Ecco come word.service.ts il file sarebbe:

import Injectable da '@ angular / core'; @Injectable () classe di esportazione WordService costruttore () 

Per effettuare una chiamata API, utilizzerai il comando HTTP modulo. Importa il HttpModule nel src / app / app.module.ts file. Ecco come appare il file:

importare BrowserModule da '@ angular / platform-browser'; import NgModule da '@ angular / core'; importare AppComponent da './app.component'; import CalcComponent da './calc/calc.component' import WordComponent da './word/word.component' import FormsModule da '@ angular / forms'; import HttpModule da '@ angular / http'; @NgModule (dichiarazioni: [AppComponent, CalcComponent, WordComponent], importa: [BrowserModule, FormsModule, HttpModule], provider: [], bootstrap: [AppComponent]) classe di esportazione AppModule  

Importa il Http modulo all'interno del word.service.ts file per effettuare chiamate API. 

importa Http da '@ angular / http';

Farai chiamate API al seguente URL.

https://api.datamuse.com/words?max=10&ml=

È necessario aggiungere la parola chiave della query insieme all'URL precedente per ottenere un massimo di 10 sinonimi del termine della query.

Definire la variabile url dentro il WordService class e inizializzarlo all'interno del metodo del costruttore.

export class WordService url: string constructor (private http: Http) this.url = 'https://api.datamuse.com/words?max=10&ml='

Hai dichiarato e inizializzato il http variabile, che userete durante le chiamate API.

Definire un metodo chiamato parola_da_cercare che restituirebbe il risultato della chiamata API come JSON. Ecco come appare:

search_word (term) return this.http.get (this.url + term) .map (res => return res.json ())

Come visto nel codice sopra, hai fatto un OTTENERE richiesta all'URL dell'API utilizzando Angular Http modulo e ha restituito la risposta come JSON. Ecco come word.service.ts aspetto del file:

import Injectable da '@ angular / core'; importa Http da '@ angular / http'; importare 'rxjs / add / operator / map' @Injectable () classe di esportazione WordService url: costruttore di stringhe (http: Http privato) this.url = 'https://api.datamuse.com/words?max=10&ml= ' search_word (term) return this.http.get (this.url + term) .map (res => return res.json ())

Cercare la Parola

Ora che hai il servizio word pronto per effettuare le chiamate API, devi definire il WordService come il fornitore nel WordComponent.

Importa il WordService nel word.component.ts file.

import WordService da './word.service';

Definire il fornitori nell'angolare WordComponent.

@Component (selector: 'word', templateUrl: 'word.component.html', styleUrls: ['word.component.css'], provider: [WordService])

Inizializza il WordService dentro il costruttore metodo.

costruttore (servizio privato: WordService) 

Definire un metodo chiamato ricerca dentro il word.component.ts file che chiamerebbe il metodo di servizio. Dentro il ricerca metodo, iscriviti al parola_da_cercare metodo dal WordService.

search (term) this.service.search_word (term) .subscribe (res => this.words = res;)

Ecco come è stato modificato word.component.ts aspetto del file:

importare Component da '@ angular / core'; import WordService da './word.service'; @Component (selector: 'word', templateUrl: 'word.component.html', styleUrls: ['word.component.css'], provider: [WordService]) classe di esportazione WordComponent words: any; costruttore (servizio privato: WordService)  ricerca (termine) this.service.search_word (term) .subscribe (res => this.words = res;) 

Aggiungi l'evento premi tasto invio all'elemento di input in word.component.html file.

Dopo aver inserito un termine di ricerca quando l'utente preme il tasto Invio, effettuerà una chiamata al metodo di ricerca in word.component.ts file.

Come visto in ricerca metodo all'interno del word.component.ts file, stai raccogliendo la risposta all'interno del file parole variabile come una lista. Quindi ripetiamo il parole elencare e visualizzare nel word.component.html file. 

Modifica il word.component.html file come mostrato:

  • Item.word

Salvare le modifiche precedenti e riavviare il server. Inserire una parola chiave e premere il tasto Invio, e si dovrebbe avere il risultato compilato come una lista.

Avvolgendolo

In questo tutorial, hai appreso cosa sono i servizi angolari. Hai imparato come creare servizi angolari e usarli da un componente angolare. È stato creato un componente di Word che esegue una query sulla parola chiave immessa rispetto a un servizio Angolare e visualizza i dati restituiti nel file modello del componente.

Come è stata la tua esperienza di apprendimento dei servizi angolari? Fateci sapere i vostri pensieri e suggerimenti nella sezione commenti qui sotto.

Il codice sorgente di questo tutorial è disponibile su GitHub.