ملكية كائنات Ember (getOwner، حقن الخدمات، إلخ)

:warning: استيراد getOwner من discourse-common/lib/get-owner لم يعد مدعومًا.

للاطلاع على الخدمات على سبيل المثال، يتوفر لديك عدة طرق.

  • في المكونات/التحكم/المسارات، يجب عليك استخدام حقن الخدمات

    import { service } from "@ember/service";
    
    export default class Something extends Component {
      @service router;
    
  • في الحالات التي قد لا تتوفر فيها الخدمة (أي أنها تأتي من إضافة اختيارية)، يتوفر حقن optionalService

    import optionalService from "discourse/lib/optional-service";
    
    export default class Something extends Component {
      @optionalService categoryBannerPresence;
    
  • في المبادئات (Initializers) الخاصة بالواجهة البرمجية (API)، لديك وصول إلى api.container

    apiInitializer((api) => {
      const router = api.container.lookup("service:router");
    
  • وللحصول على بديل مباشر لرمز موجود مسبقًا، يمكنك استخدام

    import { getOwner } from "@ember/application";
    
  • … أو إذا كنت ما زلت بحاجة إلى طبقة الحماية (fallback shim) (في سياق غير مكوّن/تحكّم/مسار/ودجت)، استخدم

    import { getOwnerWithFallback } from "discourse-common/lib/get-owner";
    

هذا المستند مُدار بالإصدارات - اقترح التعديلات على github.

7 إعجابات