Angular-да бір сервисті екінші сервиске енгізу
Жобамен жұмыс істеу үшін бізге функционалды кеңейту үшін бір сервисті екінші сервиске енгізу қажет болуы мүмкін. Жаңа деректер қосылған кезде консольге хабарлама шығаратын тағы бір сервис жасайық.
Алдымен test/src/app бумасында
log.service.ts файлын жасаймыз.
LogService класын экспорттаймыз,
онда консольге хабарлама шығару үшін
write функциясын жазамыз:
import { Injectable } from '@angular/core';
@Injectable()
export class LogService {
write(message: string) {
console.log(message);
}
}
Әрі қарай біздің DataService сервисіне барып,
жаңа сервисті импорттаймыз, инжекттейміз және қолданамыз:
import { Injectable } from '@angular/core';
import { LogService } from './log.service'; // импорттаймыз
@Injectable()
export class DataService {
private data: string[] = ['a', 'b', 'c'];
constructor(private logService: LogService) { // инжекттейміз
}
getData(): string[] {
this.logService.write('деректер алынды'); // қолданамыз
return this.data;
}
addData(name: string){
this.data.push(name);
this.logService.write('жаңа элемент қосылды'); // қолданамыз
}
}
Бірақ бұл жеткіліксіз. Компонент класында тікелей қолданылмаса да, жаңа сервисті онда да көрсету керек:
import { Component } from '@angular/core';
import {DataService} from './data.service';
import {LogService} from './log.service'; // импорттаймыз
@Component({
........
providers: [DataService, LogService] // қосамыз
})