composer에서 카테고리 정보를 가져오는 방법?

컴포저에서 카테고리가 선택될 때 특정 코드(테마 컴포넌트에서 가져온 것)를 실행할 수 있을까요? 컴포저가 방금 열렸을 때와 카테고리 드롭다운이 변경되었을 때 선택된 카테고리가 무엇인지 파악하는 데 관심이 있습니다.

컴포저 컨트롤러와 같은 컨트롤러나 컴포넌트를 수정하여 가능할 수도 있다고 생각했지만, 카테고리 정보를 찾을 수 없었습니다.

composer 컨트롤러에서 model.categoryId를 관찰하고, 값이 변경될 때 코드를 실행할 수 있습니다.

@fzngagan 감사합니다!

추가 질문인데, 이전에는 모델을 관찰(observed)해 본 적이 없었습니다 :slight_smile: . 다음과 같이 작성해 보았는데 동작하는 것 같습니다.

const { observes } = require('discourse-common/utils/decorators');
api.modifyClass("controller:composer", {
    @observes('model.categoryId')
    getCategory() {
        let categoryId = this.get("model.categoryId");
        if (categoryId == null) return;
        
        let category = this.site.categories.findBy("id", categoryId).name;
    }
});

이것이 올바른 방법(또는 권장되는 방법)인가요? 그리고 id에서 카테고리 이름을 가져오는 가장 좋은 방법도 이 방식인가요?

model 객체에 어떤 내용이 포함되어 있는지 확인할 수 있습니다. 이미 카테고리 이름이 포함되어 있을 수도 있습니다.

"모델 객체"라고 하셨을 때, 이렇게 해야 한다는 뜻이 맞나요?

this.get("model"))

수정:
어쨌든 코드가 잘 작동합니다. 다시 한번 감사합니다!