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] // кошуу
})