কৌণিক সিএলআইতে পরিষেবাগুলি তৈরি করার সময়, এটি ইনজেকটেবল ডেকোররেটারের জন্য 'রুট' এর একটি ডিফল্ট বৈশিষ্ট্যযুক্ত 'প্রদত্ত' সম্পত্তি সহ অতিরিক্ত মেটাডেটা যুক্ত করছে is
@Injectable({
providedIn: 'root',
})
সরবরাহ করা ঠিক কি করে? আমি ধরে নিচ্ছি যে এটি পুরো অ্যাপ্লিকেশনটির জন্য 'গ্লোবাল' টাইপের সিঙ্গেলটন পরিষেবার মতো পরিষেবাটি সরবরাহ করছে, তবে, অ্যাপমোডুলের সরবরাহকারী অ্যারেতে এই জাতীয় পরিষেবাদি ঘোষণা করা কি পরিষ্কার হবে না?
হালনাগাদ:
অন্য কারও জন্য, নিম্নলিখিত অনুচ্ছেদে এটির আরও একটি ভাল ব্যাখ্যা সরবরাহ করেছে, বিশেষত যদি আপনি কেবল একটি বৈশিষ্ট্য মডিউলে আপনার পরিষেবা সরবরাহ করতে চান।
@Injectable()নতুনprovidedInঅ্যাট্রিবিউটটি ব্যবহার করে সরাসরি নতুন ডিজিটরের অভ্যন্তরে কোনও সরবরাহকারীকে রেজিস্টার করার একটি নতুন, প্রস্তাবিত, উপায় রয়েছে way এটি'root'আপনার অ্যাপ্লিকেশনটির কোনও মান বা কোনও মডিউল হিসাবে গ্রহণ করে। যখন আপনি ব্যবহার'root', আপনারinjectableঅ্যাপ্লিকেশনে একটি Singleton হিসাবে নিবন্ধিত করা হবে, এবং আপনি যদি root পরিচয় মডিউল প্রদানকারীর এটি যোগ করতে প্রয়োজন হবে না। একইভাবে, আপনি যদি ব্যবহারprovidedIn: UsersModuleকরেনinjectableতবেUsersModuleএটিprovidersমডিউলের সাথে যোগ না করেই সরবরাহকারী হিসাবে নিবন্ধভুক্ত "" - https://blog.ninja-squad.com/2018/05/04/ কি- is -new- angular -6 /
আপডেট 2:
আরও তদন্তের পরে, আমি সিদ্ধান্ত নিয়েছি এটি থাকা কেবল কার্যকর providedIn: 'root'
আপনি যদি provideরুট মডিউল ব্যতীত অন্য কোনও মডিউলে কোনও পরিষেবা চান , তবে আপনি providersবৈশিষ্ট্য মডিউলটির সজ্জকারগুলিতে অ্যারে ব্যবহার করা ভাল otherwise এখানে আকর্ষণীয় আলোচনা হওয়া দরকার - https://github.com/angular/angular-cli/issues/10170