Angularda bitta servisni boshqasiga kiritish
Loyiha ustida ishlash uchun bizga ularning funksionalligini kengaytirish uchun bitta servisni boshqasiga kiritish kerak bo‘lishi mumkin. Keling, yangi ma'lumotlar qo‘shilganda xabarlarni konsolga chiqaradigan yana bir servis yaratamiz.
Boshlash uchun test/src/app papkasida
log.service.ts faylini yaratamiz.
LogService klassini eksport qilamiz,
unda xabarni konsolga chiqarish uchun
write funksiyasini yozamiz:
import { Injectable } from '@angular/core';
@Injectable()
export class LogService {
write(message: string) {
console.log(message);
}
}
Keyin bizning DataService servisimizga o‘tamiz
va yangi servisimizni import qilamiz, injekt qilamiz va ishlatamiz:
import { Injectable } from '@angular/core';
import { LogService } from './log.service'; // import qilamiz
@Injectable()
export class DataService {
private data: string[] = ['a', 'b', 'c'];
constructor(private logService: LogService) { // injekt qilamiz
}
getData(): string[] {
this.logService.write('ma`lumot qabul qilindi'); // ishlatamiz
return this.data;
}
addData(name: string){
this.data.push(name);
this.logService.write('yangi element qo‘shildi'); // ishlatamiz
}
}
Biroq, bu yetarli emas. Yangi servisni komponent klassida ham to‘g‘ridan-to‘g‘ri ishlatilmasa ham, kiritish kerak:
import { Component } from '@angular/core';
import {DataService} from './data.service';
import {LogService} from './log.service'; // import qilamiz
@Component({
........
providers: [DataService, LogService] // qo‘shamiz
})