ملكية كائن 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;
    }
    
  • في تهيئات واجهة برمجة التطبيقات (API)، لديك إمكانية الوصول إلى api.container

    apiInitializer("1.0", (api) => {
      const router = api.container.lookup("service:router");
    });
    
  • وللاستبدال المباشر للكود الموجود، يمكنك استخدام

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

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

هذه الوثيقة تخضع للتحكم في الإصدار - اقترح تغييرات على github.

7 إعجابات