Come accedere ai campi personalizzati della categoria nei plugin

Premessa: questo è per un plugin che deve conoscere i custom_fields della Categoria per creare un pulsante nell’outlet del plugin before-create-topic. Devo anche utilizzarlo nel connettore after-topic-footer-main-buttons.

Probabilmente mi sta sfuggendo qualcosa di estremamente semplice…

Posso usare quanto segue nell’inizializzatore per ottenere la classe della categoria… più o meno

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

Quando lo stampo, posso vedere varie proprietà. Nella console di sviluppo, vedo category: (...). Quando faccio clic su (..) posso vedere custom_fields e il campo che sto cercando. Come posso accedervi tramite l’API del plugin??

Ho provato varie forme di “ottenimento” della proprietà, ma restituiscono tutte undefined.

Potresti fare un passo indietro e spiegare cosa stai cercando di fare. Nella maggior parte dei casi, i dati di cui hai bisogno sono già disponibili. In caso contrario, potresti utilizzare Ajax per recuperarli in un tema, oppure aggiungerli al serializzatore in un plugin.

Sto cercando di ottenere un campo personalizzato dalla mia categoria. Scusa, prima non era chiaro. Ho aggiornato l’OP con più informazioni.

1 Mi Piace

Questo è più di quanto avessi capito prima… . . . Qualcosa del genere in plugin.rb:

  add_to_serializer(:category, :your_plugin) do
    some_stuff
  end

Penso però che quello che vuoi fare sia cercare altri plugin che probabilmente aggiungono qualcosa al serializer. Credo che Topic Ratings Plugin o Topic List Previews (legacy) siano buoni punti di partenza, e spero che diventi “ovvio” (ma solo dopo aver trascorso ore a fare un mucchio di altre cose “ovvie”, se sei come me).

La variabile è già stata aggiunta al serializzatore. Sto cercando di accedervi da JS. Pensavo di poterla ottenere dalla variabile controller menzionata nel post originale, ma non capisco come fare.

1 Mi Piace