플러그인에서 버튼에 동작 추가하는 방법

버튼을 표시하고 특정 작업을 수행하는 플러그인을 만들고 싶습니다. 버튼은 이미 원하는 위치에 표시되지만, 해당 버튼에 커스텀 작업을 어떻게 만들어야 하는지 모르겠습니다. 파일 구조는 다음과 같습니다:

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() {
      ...
    }
  }
};

정말 가까웠어요 :+1:

파일 이름만 변경하면 됩니다. 커넥터 클래스의 .hbs와 js.es6 파일 모두 동일한 이름을 가져야 합니다. 즉,

actions.js.es6

을

button.js.es6

으로 변경하면 작동해야 합니다. 커넥터 클래스에 대한 자세한 내용은 여기에서 확인할 수 있습니다

조, 고마워! 완벽하게 작동해!