Proprietà degli oggetti Ember (getOwner, service injections, ecc.)

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

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

  • In componenti/controller/route dovresti usare 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 (cioè proviene da un plugin opzionale) c’è un’iniezione optionalService

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

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

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

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

Questo documento è controllato tramite versione - suggerisci modifiche su github.

7 Mi Piace