プラグインでボタンのアクションを追加する方法

プラグインを作成してボタンを表示し、何らかのアクションを実行したいと考えています。ボタンはすでに目的の場所に表示されていますが、カスタムアクションの作成方法がわかりません。ファイル構成は以下の通りです。

plugins/discourse-my-plugin
├── assets
│   ├── javascripts
│   │   └── discourse
│   │       ├── initializers
│   │       │   └── my-plugin.js.es6
│   │       └── templates
│   │           └── connectors
│   │               └── user-messages-nav
│   │                   ├── actions.js.es6
│   │                   └── button.hbs
├── config
└── plugin.rb

initializers/my-plugin.js.es6

import { withPluginApi } from "discourse/lib/plugin-api";

function initializeButton(api) {
  api.decoratePluginOutlet('user-messages-nav', (elem, args) => {
    ...
  });
}
export default {
  name: "my-button",
  initialize() {
    withPluginApi("0.8.31", initializeButton);
  }
};

button.hbs

{{d-button class="btn-primary" action="submitContent" label="submit_content"}}

actions.js.es6 にカスタムアクションをこのように作成するのは正しいでしょうか?エラーは「had no action handler for: submitContent」ですが、どのように修正すればよいでしょうか?

export default {
  actions: {
    submitContent() {
      ...
    }
  }
};
「いいね!」 2

非常に近いところまで来ています :+1:

ファイル名を変更するだけです。コンポーネントクラスにある .hbs ファイルと js.es6 ファイルの両方が同じ名前である必要があります。したがって、

actions.js.es6

button.js.es6

に変更すれば、動作するはずです。コンポーネントクラスについては、こちらで詳しく読むことができます。

「いいね!」 7

ジョー、ありがとう!完璧に動いています!

「いいね!」 3