e.g.
api.addCommunitySectionLink({
name: "intersection-navigator",
route:"tags.intersection",
title: I18n.t("tag_intersection_navigator.link.title"),
text: I18n.t("tag_intersection_navigator.link.text")
})
… non funzionerà perché quella route richiede un tag_id.
Ho provato ad aggiungere:
params: { tag_id: siteSettings.discourse_tag_intersection_navigator_all_word },
model: { tag_id: siteSettings.discourse_tag_intersection_navigator_all_word },
… ma ho il forte sospetto che questo non venga elaborato come necessario dall’api …
4 Mi Piace
Nello specifico, penso sia qui: discourse/app/assets/javascripts/discourse/app/lib/sidebar/custom-community-section-links.js at d0c3f3b8fe6905e7e33ae4944cdf44c11ccc0df6 · discourse/discourse · GitHub
se aggiungiamo questo dovrebbe funzionare:
get models() {
return args.models;
}
3 Mi Piace
Oh grazie per l’apertura!
1 Mi Piace
Ah, e dato che c’è una condizione typeof args === "function", potresti fare subito qualcosa del genere:
api.addCommunitySectionLink((Base) =">
class CustomLink extends Base {
get name() {
return "intersection-navigator";
}
get route() {
return "tag.show";
}
get models() {
return ["tagid"];
}
get title() {
return I18n.t("tag_intersection_navigator.link.title");
}
get text() {
return I18n.t("tag_intersection_navigator.link.text");
}
}
);
1 Mi Piace
sì, è quello che sto già facendo… ma c’è qualcosa di strano più avanti nel processo
1 Mi Piace
Per qualche ragione, non è proprio questo e ricevo un errore riguardante la mancanza di postStream al click:
api.addCommunitySectionLink((baseSectionLink) =
return class CustomSectionLink extends baseSectionLink {
get name() {
return "intersection-navigator";
}
get route() {
return "tags.intersection";
}
get models() {
return [{tag_id: siteSettings.discourse_tag_intersection_navigator_all_word}];
}
get title() {
return I18n.t("tag_intersection_navigator.link.title")
}
get text() {
return I18n.t("tag_intersection_navigator.link.text");
}
};
});
È quasi come se fosse necessario includere il modello per la route corrente, il che è strano!
1 Mi Piace
qual è l’output di questa impostazione? sembra funzionare bene quando lo faccio manualmente:
get models() {
return ["featured", "tv"];
}
2 Mi Piace
sì, funziona, è davvero utile, grazie!
l’impostazione è solo una stringa. Penso che ci stessi pensando troppo.
il nome “models” per i parametri della query non è intuitivo al 100% però?
La tua PR renderà tutto molto più ordinato, grazie!
2 Mi Piace
sì, neanche a me era chiaro all’inizio, ma è perché alla fine utilizza il componente LinkTo di Ember, che si aspetta un argomento model…
1 Mi Piace
system
(system)
Chiuso
11
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.