コンポーネントからabout modelにアクセスするには? (outletArgsで解決!)

古い統計情報 About ページに載せたいです。

About ページ全体を置き換える about-wrapper があります。また、after-moderators アウトレットもあります。どちらも完全にうまく機能しませんが、解決策はいくつか思いつきます(例:新しい About テンプレートでプラグインアウトレットを増やす PR を提出するなど)。

/about.json には古い統計情報が含まれていますが、コンポーネントからアクセスする方法がわかりません。this には表示されませんが、Users(これも about.json に含まれています)は表示されます。

編集:検索したと思ったのですが、Hide public statistics from /about and about.json を見つけました。これは役立つかもしれませんか? いいえ。それは別のものです。

ブレークスルーがありました。outletArgs にあります。

import Component from "@glimmer/component";
import { dasherize } from "@ember/string";

export default class ClassicAboutStatistics extends Component {
  get model() {
    return this.args.outletArgs.model;
  }

  get shouldShow() {
    return settings.classic_about_statistics_enabled?.length > 0;
  }
}

これにより、元のテンプレートのようにアクセスできます。

        <td>{{number this.model.stats.topics_last_day}}</td>
「いいね!」 7