⊗jsagPmSvITS 77 of 97 menu

Vložení jedné služby do druhé v Angular

Pro práci na projektu může být potřeba vložit jednu službu do druhé, aby se rozšířila jejich funkčnost. Pojďme vytvořit ještě jednu službu, která bude vypisovat zprávy do konzole při přidání nových dat.

Nejprve ve složce test/src/app vytvoříme soubor log.service.ts. Exportujeme třídu LogService, ve které napíšeme funkci write pro výpis zprávy do konzole:

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

Dále přejdeme do naší služby DataService a importujeme, injektujeme a použijeme naši novou službu:

import { Injectable } from '@angular/core'; import { LogService } from './log.service'; // importujeme @Injectable() export class DataService { private data: string[] = ['a', 'b', 'c']; constructor(private logService: LogService) { // injektujeme } getData(): string[] { this.logService.write('data received'); // používáme return this.data; } addData(name: string){ this.data.push(name); this.logService.write('new elem added'); // používáme } }

To však nestačí. Ještě je potřeba zadat novou službu i v třídě komponentu, i když se tam přímo nepoužívá:

import { Component } from '@angular/core'; import {DataService} from './data.service'; import {LogService} from './log.service'; // importujeme @Component({ ........ providers: [DataService, LogService] // přidáme })
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout