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('data received'); // ব্যবহার করি
return this.data;
}
addData(name: string){
this.data.push(name);
this.logService.write('new elem added'); // ব্যবহার করি
}
}
যাইহোক, এটাই যথেষ্ট নয়। আমাদের নতুন পরিষেবাটি কম্পোনেন্ট ক্লাসেও নির্দিষ্ট করতে হবে, যদিও এটি সরাসরি সেখানে ব্যবহার করা হয় না:
import { Component } from '@angular/core';
import {DataService} from './data.service';
import {LogService} from './log.service'; // ইম্পোর্ট করি
@Component({
........
providers: [DataService, LogService] // যোগ করি
})