⊗jsagPmSvITS 77 of 97 menu

Injisering av en tjeneste i en annen i Angular

For å jobbe med prosjektet kan vi trenge å injisere en tjeneste i en annen for å utvide deres funksjonalitet. La oss lage enda en tjeneste som vil skrive ut meldinger i konsollen når nye data legges til.

Først i mappen test/src/app oppretter vi filen log.service.ts. Vi eksporterer klassen LogService, der vi skriver funksjonen write for å skrive ut melding i konsollen:

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

Deretter går vi til vår tjeneste DataService og importerer, injiserer og bruker vår nye tjeneste:

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) { // injiserer } getData(): string[] { this.logService.write('data mottatt'); // bruker return this.data; } addData(name: string){ this.data.push(name); this.logService.write('nytt element lagt til'); // bruker } }

Dette er imidlertid ikke nok. Vi må også registrere den nye tjenesten i komponentklassen, selv om den ikke brukes direkte der:

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