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] // қўшамиз
})