Возможно, я упускаю что-то очевидное, поэтому заранее извиняюсь, если это так.
В моем плагине есть пользовательская настройка для каждой категории, которая используется для отображения/скрытия переключателя в редакторе. Этот переключатель реализован как компонент Glimmer, который инициализатор вызывает для рендеринга в плагин-аутлете composer-fields.
Моя цель — чтобы редактор отображал или скрывал переключатель при изменении категории внутри редактора, в зависимости от значения пользовательской настройки, привязанной к этой категории.
Возможно ли добавить наблюдатель (observer) на outletArgs плагин-аутлета? Модель редактора устанавливается в outletArgs, поэтому я подумал установить наблюдатель на categoryId через него. Затем я планировал запустить функцию для проверки значения пользовательской настройки в категории. Но у меня возникают трудности с настройкой наблюдателя. Возможно, я делаю это неправильно, так как я относительно новичок в EmberJS.
Или есть другой способ решить эту задачу?
Для контекста: я использую Discourse версии 3.4.7.
Попробовал это решение, но, к сожалению, похоже, что в версии, на которой я собираю проект, список инициализированных трансформеров устарел и в нём отсутствует composer-editor-reply-placeholder.
Для дополнительного контекста: я рефакторю функции плагина, переходя на использование компонентов Glimmer после устаревания API registerConnectorClass. Ниже представлен код, который использовался изначально.
export default {
initialize(container) {
withPluginApi("1.6.0", api => {
api.registerConnectorClass("composer-fields", "handlebars-template-name", {
setupComponent(attrs, component) {
const model = attrs.model;
const controller = api.container.lookup("controller:composer");
if (controller) {
controller.addObserver("model.categoryId", this, function () {
// логика для установки значений showToggle и isRestricted
let props = {
showField: showToggle && isRestricted,
}
component.setProperties(Object.assign(props));
})
}
}
}
Есть ли другой способ получить ту же функциональность из компонента Glimmer? В частности, наблюдение за изменениями в модели и/или categoryId.