একটি ভাগ করা পরিষেবা হ'ল সর্বোত্তম পন্থা
export class SharedService {
globalVar:string;
}
আপনার সম্পূর্ণ অ্যাপ্লিকেশনটির জন্য একটি একক উদাহরণ ভাগ করতে সক্ষম হতে এটি নিবন্ধভুক্ত করার সময় আপনার খুব সতর্ক হওয়া দরকার। আপনার আবেদনটি নিবন্ধ করার সময় আপনাকে এটি সংজ্ঞায়িত করতে হবে:
bootstrap(AppComponent, [SharedService]);
তবে providers
আপনার উপাদানগুলির বৈশিষ্ট্যের মধ্যে এটি আবার সংজ্ঞায়িত করতে হবে না :
@Component({
(...)
providers: [ SharedService ], // No
(...)
})
অন্যথায় উপাদান এবং এর উপ উপাদানগুলির জন্য আপনার পরিষেবার একটি নতুন উদাহরণ তৈরি করা হবে।
অ্যাঙ্গুলার 2 এ নির্ভরতা ইনজেকশন এবং হায়ারারিকাল ইনজেকশনাররা কীভাবে কাজ করে সে সম্পর্কে আপনি এই প্রশ্নের এক নজর দেখতে পারেন:
আপনি খেয়াল করতে পারেন যে Observable
যখন আপনার বিশ্বব্যাপী সম্পত্তি পরিবর্তন হয় আপনি নিজের অ্যাপ্লিকেশনটির কিছু অংশ অবহিত করতে পরিষেবাতে বৈশিষ্ট্যগুলিও সংজ্ঞায়িত করতে পারেন :
export class SharedService {
globalVar:string;
globalVarUpdate:Observable<string>;
globalVarObserver:Observer;
constructor() {
this.globalVarUpdate = Observable.create((observer:Observer) => {
this.globalVarObserver = observer;
});
}
updateGlobalVar(newValue:string) {
this.globalVar = newValue;
this.globalVarObserver.next(this.globalVar);
}
}
আরও তথ্যের জন্য এই প্রশ্নটি দেখুন: