আপডেট (কৌণিক 6 +)
সিঙ্গলটন পরিষেবা তৈরির প্রস্তাবিত উপায়টি পরিবর্তিত হয়েছে। এখন @Injectable
পরিষেবাটিতে ডেকরেটারে এটি নির্দিষ্ট করার পরামর্শ দেওয়া হচ্ছে যে এটি 'রুট' এ সরবরাহ করা উচিত। এটি আমার কাছে প্রচুর পরিমাণে উপলব্ধি করে এবং আপনার মডিউলগুলিতে প্রদত্ত সমস্ত পরিষেবাগুলির আর কোনও তালিকা করার দরকার নেই। আপনার যখন প্রয়োজন পরিষেবাগুলি দরকার তখন আপনি কেবল তা আমদানি করুন এবং তারা যথাযথ জায়গায় নিবন্ধন করুন। আপনি একটি মডিউলও নির্দিষ্ট করতে পারেন তাই মডিউলটি আমদানি করা হলে কেবল এটি সরবরাহ করা হবে।
@Injectable({
providedIn: 'root',
})
export class ApiService {
}
আপডেট (কৌণিক 2)
এনজিডমুলেলের সাথে, এখন এটি করার উপায়টি আমি মনে করি এটিতে আপনার পরিষেবা শ্রেণীর সাথে একটি 'কোরমোডুল' তৈরি করা এবং মডিউলটির সরবরাহকারীদের মধ্যে পরিষেবাটি তালিকাভুক্ত করা। তারপরে আপনি আপনার মূল অ্যাপ্লিকেশন মডিউলে মূল মডিউলটি আমদানি করুন যা কোনও শিশু তাদের নির্মাতাদের মধ্যে এই শ্রেণীর জন্য অনুরোধ করে এমন এক নজির সরবরাহ করবে:
CoreModule.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ApiService } from './api.service';
@NgModule({
imports: [
CommonModule
],
exports: [ // components that we want to make available
],
declarations: [ // components for use in THIS module
],
providers: [ // singleton services
ApiService,
]
})
export class CoreModule { }
AppModule.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AppComponent } from './app.component';
import { CoreModule } from './core/core.module';
@NgModule({
declarations: [ AppComponent ],
imports: [
CommonModule,
CoreModule // will provide ApiService
],
providers: [],
bootstrap: [ AppComponent ]
})
export class AppModule { }
আসল উত্তর
আপনি যদি কোনও সরবরাহকারীকে এখানে bootstrap()
তালিকাভুক্ত করেন তবে আপনার সেগুলি আপনার উপাদান ডেকরেটারে তালিকাভুক্ত করার দরকার নেই:
import { ApiService } from '../core/api-service';
@Component({
selector: 'main-app',
templateUrl: '/views/main-app.html',
// DO NOT LIST PROVIDERS HERE IF THEY ARE IN bootstrap()!
// (unless you want a new instance)
//providers: [ApiService]
})
export class MainAppComponent {
constructor(private api: ApiService) {}
}
প্রকৃতপক্ষে আপনার সরবরাহকারীদের শ্রেণিতে তালিকাভুক্তকরণ এটির একটি নতুন উদাহরণ তৈরি করে, যদি কোনও পিতামাতার উপাদান ইতিমধ্যে এটি তালিকাভুক্ত করে তবে বাচ্চাদের প্রয়োজন হয় না এবং তারা যদি তা করে তবে তারা একটি নতুন উদাহরণ পাবে।
UserService
এবংFacebookService
করতেproviders
কোথাও?