⊗jsagPmSvITS 77 of 97 menu

Wstrzykiwanie jednego serwisu do drugiego w Angular

Do pracy nad projektem może być potrzebne wstrzyknięcie jednego serwisu do drugiego, aby rozszerzyć ich funkcjonalność. Stwórzmy kolejny serwis, który będzie wyświetlał komunikaty w konsoli przy dodawaniu nowych danych.

Najpierw w folderze test/src/app tworzymy plik log.service.ts. Eksportujemy klasę LogService, w której opiszemy funkcję write do wyświetlania komunikatu w konsoli:

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

Następnie przechodzimy do naszego serwisu DataService i importujemy, injektujemy oraz używamy naszego nowego serwisu:

import { Injectable } from '@angular/core'; import { LogService } from './log.service'; // importujemy @Injectable() export class DataService { private data: string[] = ['a', 'b', 'c']; constructor(private logService: LogService) { // injektujemy } getData(): string[] { this.logService.write('data received'); // używamy return this.data; } addData(name: string){ this.data.push(name); this.logService.write('new elem added'); // używamy } }

To jednak nie wystarczy. Trzeba jeszcze wpisać nowy serwis w klasie komponentu, chociaż nie jest on tam bezpośrednio używany:

import { Component } from '@angular/core'; import {DataService} from './data.service'; import {LogService} from './log.service'; // importujemy @Component({ ........ providers: [DataService, LogService] // dodajemy })
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć