Proprietà degli oggetti Ember (getOwner, iniezioni di servizi, ecc.)

:warning: L’importazione di getOwner da discourse-common/lib/get-owner è obsoleta.

Per accedere, ad esempio, ai servizi, sono a tua disposizione alcuni metodi.

  • Nei componenti/controller/routes dovresti utilizzare le iniezioni di servizio

    import { service } from "@ember/service";
    
    export default class Something extends Component {
      @service router;
    
  • Nei casi in cui un servizio potrebbe non essere disponibile (ad esempio se proviene da un plugin opzionale) esiste un’iniezione optionalService

    import optionalService from "discourse/lib/optional-service";
    
    export default class Something extends Component {
      @optionalService categoryBannerPresence;
    
  • Nei inizializzatori API hai accesso a api.container

    apiInitializer((api) => {
      const router = api.container.lookup("service:router");
    
  • E per una sostituzione diretta di un codice esistente puoi usare

    import { getOwner } from "@ember/application";
    
  • …o, se hai ancora bisogno dello shim di fallback (in un contesto non componente/controller/route/widget), usa

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

Questo documento è sottoposto a controllo di versione: suggerisci modifiche su github.

7 Mi Piace