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