Como acessar campos personalizados de Categoria em Plugins

Antes de tudo, isso é para um plugin que precisa conhecer os custom_fields da Categoria para criar um botão no plugin-outlet before-create-topic. Também preciso usar isso no conector after-topic-footer-main-buttons.

Provavelmente estou esquecendo algo extremamente simples aqui…

Posso usar o seguinte no inicializador para obter a classe da categoria… mais ou menos

const controller = api.container.lookup("controller:navigation/category");

Quando imprimo isso, consigo ver várias propriedades. No console de desenvolvedor, vejo category: (...). Ao clicar em (..), consigo ver custom_fields e o campo que estou procurando. Como posso acessar isso pela API do plugin??

Tentei várias formas de “obter” a propriedade, mas todas retornam undefined.

Você pode dar um passo atrás e explicar o que está tentando fazer. Geralmente, os dados de que você precisa já estão disponíveis. Caso contrário, você pode usar Ajax para buscá-los em um tema ou adicioná-los ao serializador em um plugin.

Estou tentando obter um campo personalizado da minha categoria. Desculpe, não ficou claro antes. Atualizei a OP com mais informações.

1 curtida

Isso é mais informação do que eu entendia antes… Algo assim no plugin.rb:

  add_to_serializer(:category, :your_plugin) do
    some_stuff
  end

Acho que o que você quer fazer, no entanto, é procurar por outros plugins que provavelmente adicionam coisas ao serializador. Acredito que Topic Ratings Plugin ou Topic List Previews (legacy) sejam bons exemplos para analisar, e espero que fique “óbvio” (mas só depois de passar horas fazendo várias outras coisas “óbvias”, se você for como eu).

A variável já foi adicionada ao serializer. Estou tentando acessá-la no JS. Pensei em obtê-la a partir da variável controller que mencionei no post original, mas não entendo como acessá-la.

1 curtida