Vieno serviso įterpimas į kitą Angular
Projektui dirbti mums gali prireikti įterpti vieną servisą į kitą, kad išplėstume jų funkcionalumą. Sukurkime dar vieną servisą, kuris rodys pranešimus konsolėje pridedant naujus duomenis.
Pirmiausia aplanke test/src/app sukuriame
failą log.service.ts. Eksportuojame
klasę LogService, kurioje parašysime
funkciją write pranešimui rodyti
konsolėje:
import { Injectable } from '@angular/core';
@Injectable()
export class LogService {
write(message: string) {
console.log(message);
}
}
Toliau einame į mūsų servisą DataService
ir importuojame, injektuojame ir naudojame
mūsų naują servisą:
import { Injectable } from '@angular/core';
import { LogService } from './log.service'; // importuojame
@Injectable()
export class DataService {
private data: string[] = ['a', 'b', 'c'];
constructor(private logService: LogService) { // injektuojame
}
getData(): string[] {
this.logService.write('data received'); // naudojame
return this.data;
}
addData(name: string){
this.data.push(name);
this.logService.write('new elem added'); // naudojame
}
}
Tačiau to nepakanka. Dar reikia nurodyti naują servisą ir komponento klasėje, nors jis ten tiesiogiai ir nenaudojamas:
import { Component } from '@angular/core';
import {DataService} from './data.service';
import {LogService} from './log.service'; // importuojame
@Component({
........
providers: [DataService, LogService] // pridedame
})