Si non, il semble que cette méthode ne fonctionne que lors de la liaison à une classe de connecteur (c’est-à-dire avec un plugin outlet). Y a-t-il des étapes particulières à suivre pour ajouter un nouveau plugin outlet à un modèle ?
Je pense que j’ai réussi à faire fonctionner cela. Objectif : charger certains sujets à un emplacement spécifié dans un nouveau modèle (cela fonctionne probablement aussi pour l’ajout à des modèles existants, mais je ne l’ai pas testé) :
Insérez votre point d’extension personnalisé dans votre modèle (mon point d’extension personnalisé s’appelle « great-topics », par exemple) :
{{plugin-outlet name="great-topics"}}
Ajoutez le code Handlebars (c’est-à-dire votre composant) dans un connecteur :
const ajax = require('discourse/lib/ajax').ajax;
const Topic = require('discourse/models/topic').default;
setupComponent(args, component) {
ajax("/tag/featured.json").then(function (result) {
let featuredTopics = [];
// Créez un tableau vide, nous y ajouterons les sujets
var featuredUsers = result.users;
// Récupérez les utilisateurs pertinents
result.topic_list.topics.slice(0, 4).forEach(function (topic) {
// Nous extrayons les sujets commençant à 0 et se terminant à 4
// Cela signifie que nous en afficherons 3 au total. Augmentez 4 pour en voir plus.
topic.posters.forEach(function (poster) {
poster.user = $.grep(featuredUsers, function (e) { return e.id == poster.user_id; })[0];
});
// Associez les utilisateurs à notre sujet
featuredTopics.push(Topic.create(topic));
// Ajoutez nos sujets au tableau featuredTopics
});
}) // fin de result.topic.topic_list...
component.set('featuredTopics', featuredTopics); // c'est ici que les sujets sont ajoutés au composant
component.set("loadingTopics", false); //mon code ci-dessus n'a pas de chargeur. mais ceci est présent si vous en voulez un. Il faut l'ajouter au fichier hbs en plus. Voir la publication liée sur Meta ci-dessus
}); // fin de ajax
}// fin de setup component
Cela fonctionne pour moi, du moins, pour charger des sujets avec le tag « featured » dans le point d’extension de mon nouveau modèle.
Pour voir cela fonctionner, il faudra redémarrer le serveur.