Angular-da bir servisi beýleki bir servise salmak
Taslamany işlemek üçin, olaryň funksionallygyny giňeltmek üçin bir servisi beýleki bir servise salmak zerur bolup biler. Geliň, täze maglumat goşulanda habarlary konsola çykarjak ýene bir servis dözdüreliň.
Ilki bilen, test/src/app papkasyna log.service.ts faýlyny dözedýäris. Konsolda habar çykarmak üçin write funksiýasyny ýazarys we LogService klasyny eksport edýäris:
import { Injectable } from '@angular/core';
@Injectable()
export class LogService {
write(message: string) {
console.log(message);
}
}
Indi DataService servisimize geçeliň we täze servisimizi import edeliň, inžektirläp ulanalyň:
import { Injectable } from '@angular/core';
import { LogService } from './log.service'; // import edýäris
@Injectable()
export class DataService {
private data: string[] = ['a', 'b', 'c'];
constructor(private logService: LogService) { // inžektirläp salýarys
}
getData(): string[] {
this.logService.write('maglumat alyndy'); // ulanyýarys
return this.data;
}
addData(name: string){
this.data.push(name);
this.logService.write('täze element goşuldy'); // ulanyýarys
}
}
Şonda-da, ýeterlik däl. Komponent klasyna-da täze servisi goşmaly, ony gönüden-göni ulanmasak-da:
import { Component } from '@angular/core';
import {DataService} from './data.service';
import {LogService} from './log.service'; // import edýäris
@Component({
........
providers: [DataService, LogService] // goşýarys
})