Proprietà dell'oggetto Ember (getOwner, injection dei servizi, ecc.)

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

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

  • Nei 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 (ad esempio, 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 non componente/controller/route/widget) usa

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

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

7 Mi Piace