javascript - কৌণিক 6 নির্ভরতা ইনজেকশন




angular typescript (3)

আপনি যদি কৌণিক 5+ বিকাশকারী ব্যবহার করে থাকেন তবে প্রদত্ত হিসাবে ঘোষিত হওয়ার পরে এটি স্বয়ংক্রিয়ভাবে ইনজেক্টেবল পরিষেবা তৈরি করবে: 'রুট', এই ক্ষেত্রে আপনাকে অ্যাপ্লিকেশন.মডিউল.টসে পরিষেবাটি আমদানি করতে হবে না। আপনি সরাসরি এটি অন্য উপাদান ব্যবহার করতে পারেন।

অ্যাঙ্গুলার 6 এর সর্বশেষ প্রকাশে, পরিষেবাটি মেটাডাটাতে providedIn property providedIn সম্পত্তি ব্যবহার করে একটি পরিষেবা একটি মডিউলে নিবন্ধিত হয়েছে:

@Injectable({
  providedIn: 'root',
})
export class HeroService {}

তবে ডকুমেন্টেশনটি এখনও মডিউল মেটাডেটা মডিউল providers অ্যারেতে পরিষেবা নিবন্ধকরণকে বোঝায় ঠিক যেমন আমরা কৌণিক 5 তে করেছিলাম:

@NgModule({
  providers: [HeroService],
})
export class AppModule {}

সুতরাং,

  • ইনজেকশনটি যে ইনজেকশন করা উচিত সে সম্পর্কে সচেতন করতে কোন পদ্ধতিটি ব্যবহার করা উচিত?
  • মডিউল providers অ্যারে পদ্ধতিটি কি অবহেলা করা হবে?

মূলত আপনি উভয়ই ব্যবহার করতে পারেন, তবে নতুন সিএলআই সরবরাহ হিসাবে service তৈরি করার সময় স্বয়ংক্রিয়ভাবে যুক্ত করা হবে

providedIn

নতুন সরবরাহিত @Injectable() ব্যবহার করে সরাসরি @Injectable() অভ্যন্তরে সরবরাহকারীকে রেজিস্ট্রেশন করার একটি নতুন, প্রস্তাবিত, উপায় রয়েছে। এটি 'root' কে আপনার অ্যাপ্লিকেশনটির কোনও মান বা কোনও মডিউল হিসাবে গ্রহণ করে। আপনি যখন 'root' ব্যবহার করবেন, তখন আপনার ইনজেকশনযোগ্য অ্যাপ্লিকেশনটিতে একটি সিঙ্গলটন হিসাবে নিবন্ধিত হবে এবং আপনাকে এটি রুট মডিউলটির সরবরাহকারীদের সাথে যুক্ত করার দরকার নেই। একইভাবে, আপনি যদি providedIn: UsersModule ব্যবহার করেন providedIn: UsersModule মডিউল সরবরাহকারীদের সাথে যুক্ত না করেই UsersModule সরবরাহকারী হিসাবে নিবন্ধিত হয়।

অ্যাপ্লিকেশনটিতে আরও ভাল গাছ কাঁপানোর জন্য এই নতুন উপায়টি চালু করা হয়েছে। বর্তমানে কোনও মডিউল সরবরাহকারীদের সাথে যুক্ত একটি পরিষেবা চূড়ান্ত বান্ডিলটিতে শেষ হবে, এমনকি এটি অ্যাপ্লিকেশনটিতে ব্যবহার না করা হলেও এটি কিছুটা দুঃখজনক।

আরও তথ্যের জন্য দয়া করে এখানে উল্লেখ করুন


@NgModule() এবং @Component() কাছে সরবরাহকারী মেটাডেটা বিকল্প রয়েছে, যেখানে আপনি এনজিএমডিউল-স্তর বা উপাদান উপাদান স্তরের ইনজেক্টরগুলির জন্য সরবরাহকারীদের কনফিগার করতে পারেন।

@ ইনজেকটেবল () সাজসজ্জার সরবরাহকারী ইন মেটাডেটা বিকল্প রয়েছে, যেখানে আপনি সজ্জিত পরিষেবা শ্রেণীর সরবরাহকারীকে মূল ইনজেক্টর সহ বা কোনও নির্দিষ্ট এনজিএমডুলের জন্য ইনজেক্টর দিয়ে নির্দিষ্ট করতে পারেন।

আপনার ক্ষেত্রে, কারণ এটি "মূল" স্তরে সরবরাহ করা হয়েছে, মডিউলে এটি সরবরাহকারী হিসাবে আবার যুক্ত করার দরকার নেই।

নির্ভরতা ইনজেকশন সম্পর্কে আরও এখানে







angular6