Ember 객체 소유권 (getOwner, 서비스 주입 등)

:warning: discourse-common/lib/get-owner에서 getOwner를 가져오는 것은 더 이상 권장되지 않습니다.

예를 들어 서비스를 접근하려면 여러 가지 방법을 사용할 수 있습니다.

  • 컴포넌트/컨트롤러/루트에서는 서비스 주입을 사용해야 합니다

    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((api) => {
      const router = api.container.lookup("service:router");
    
  • 기존 코드를 직접 대체하려면 다음을 사용할 수 있습니다

    import { getOwner } from "@ember/application";
    
  • …또는 여전히 폴백 심이 필요한 경우(컴포넌트/컨트롤러/루트/위젯 컨텍스트가 아닌 경우)에는 다음을 사용하세요

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

이 문서는 버전 관리됩니다 - 변경 사항을 github에서 제안하십시오.

7개의 좋아요