Propriété des objets Ember (getOwner, injections de services, etc.)

:warning: L’importation de getOwner depuis discourse-common/lib/get-owner est dépréciée.

Pour accéder, par exemple, aux services, plusieurs méthodes s’offrent à vous.

  • Dans les composants/contrôleurs/routes, vous devriez utiliser des injections de services

    import { service } from "@ember/service";
    
    export default class Something extends Component {
      @service router;
    
  • Dans les cas où un service peut être indisponible (c’est-à-dire s’il provient d’un plugin optionnel), il existe une injection optionalService

    import optionalService from "discourse/lib/optional-service";
    
    export default class Something extends Component {
      @optionalService categoryBannerPresence;
    
  • Dans les initialiseurs d’API, vous avez accès à api.container

    apiInitializer((api) => {
      const router = api.container.lookup("service:router");
    
  • Et pour un remplacement direct d’un code existant, vous pouvez utiliser

    import { getOwner } from "@ember/application";
    
  • …ou, si vous avez toujours besoin du shim de repli (dans un contexte non composant/contrôleur/route/widget), utilisez

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

Ce document est sous contrôle de version - suggérez des modifications sur github.

7 « J'aime »