从 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.containerapiInitializer("1.0", (api) => { const router = api.container.lookup("service:router"); }); -
作为现有代码的直接替代,您可以使用
import { getOwner } from "@ember/application"; -
…或者,如果您仍然需要在非组件/控制器/路由/小部件上下文中使用回退垫片,请使用
import { getOwnerWithFallback } from "discourse-common/lib/get-owner";
本文档受版本控制 - 在 github 上建议更改。