⊗jsagPmSvITS 77 of 97 menu

Injicera en tjänst i en annan i Angular

För att arbeta med projektet kan vi behöva injicera en tjänst i en annan för att utöka deras funktionalitet. Låt oss skapa ytterligare en tjänst som kommer att skriva ut meddelanden till konsolen när nya data läggs till.

Först i mappen test/src/app skapar vi filen log.service.ts. Exportera klassen LogService, där vi skriver funktionen write för att skriva ut ett meddelande till konsolen:

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

Därefter går vi till vår tjänst DataService och importerar, injicerar och använder vår nya tjänst:

import { Injectable } from '@angular/core'; import { LogService } from './log.service'; // importerar @Injectable() export class DataService { private data: string[] = ['a', 'b', 'c']; constructor(private logService: LogService) { // injicerar } getData(): string[] { this.logService.write('data mottagen'); // använder return this.data; } addData(name: string){ this.data.push(name); this.logService.write('nytt element tillagt'); // använder } }

Detta är dock inte tillräckligt. Vi måste också registrera den nya tjänsten i komponentklassen, även om den inte används direkt där:

import { Component } from '@angular/core'; import {DataService} from './data.service'; import {LogService} from './log.service'; // importerar @Component({ ........ providers: [DataService, LogService] // lägger till })
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa