仅在单页注入 HTML

这是一个好问题,不用担心!这样可以实现:

import Component from "@glimmer/component";
import { service } from "@ember/service";
import { apiInitializer } from "discourse/lib/api";
import { defaultHomepage } from "discourse/lib/utilities";

class HomepageOnly extends Component {
  @service router;

  get shouldShow() {
    return this.router.currentRouteName === `discovery.${defaultHomepage()}`;
  }

  <template>
    {{#if this.shouldShow}}
      <div>
        html stuff
      </div>
    {{/if}}
  </template>
}

export default apiInitializer((api) => {
  api.renderInOutlet("above-main-container", HomepageOnly);
});

这会创建一个新的组件,该组件使用 router 服务和 defaultHomepage 工具函数来检查你是否位于首页。然后,该组件会在指定的出口(outlet)中渲染。

这里还有更多相关信息:Add custom content that only appears on your homepage