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] // जोड़ें
})