⊗jsagPmSvITS 77 of 97 menu

Injektion af en service i en anden i Angular

For at arbejde på projektet kan vi have brug for at injicere en service i en anden for at udvide deres funktionalitet. Lad os oprette endnu en service, som vil udskrive beskeder i konsollen, når der tilføjes nye data.

Først i mappen test/src/app opretter vi filen log.service.ts. Vi eksporterer klassen LogService, hvor vi skriver funktionen write for at udskrive en besked i konsollen:

import { Injectable } from '@angular/core'; @Injectable() export class LogService { write(message: string) { console.log(message); } }

Dernæst går vi til vores service DataService og importerer, injicerer og bruger vores nye service:

import { Injectable } from '@angular/core'; import { LogService } from './log.service'; // importerer @Injectable() export class DataService { private data: string[] = ['a', 'b', 'c']; constructor(private logService: LogService) { // injicerer } getData(): string[] { this.logService.write('data modtaget'); // bruger return this.data; } addData(name: string){ this.data.push(name); this.logService.write('nyt element tilføjet'); // bruger } }

Dette er dog ikke nok. Vi skal også registrere den nye service i komponentklassen, selvom den ikke direkte bruges der:

import { Component } from '@angular/core'; import {DataService} from './data.service'; import {LogService} from './log.service'; // importerer @Component({ ........ providers: [DataService, LogService] // tilføjer })
Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis