Maison > Article > interface Web > Comment appeler des méthodes Meteor dans les assistants de modèles et gérer les réponses asynchrones ?
Appel de méthodes Meteor dans les assistants de modèles
Dans MeteorJS, il est possible de définir des méthodes qui peuvent être invoquées à partir des assistants de modèles. Cela vous permet d'effectuer des actions côté serveur et de récupérer des données pouvant être affichées dans vos modèles.
Pour y parvenir, suivez ces étapes :
Définir votre méthode Meteor :
Dans un fichier séparé, tel que lib/test.js, définissez votre méthode Meteor à l'aide de l'API Meteor.methods(). Par exemple :
<code class="js">Meteor.methods({ viewTest: function (str) { return str; } });</code>
Appelez la méthode dans votre assistant de modèle :
Dans votre assistant de modèle, invoquez la méthode Meteor à l'aide de Meteor.call( ) fonction. Par exemple, dans client/myView.js :
<code class="js">Template.helloWorld.helpers({ txt: function () { var str = Meteor.call('viewTest', 'Hello World.'); return str; } });</code>
Initialement, votre modèle peut n'afficher aucune valeur si vous transmettez un argument autre qu'une chaîne au paramètre str. En effet, la méthode Meteor s'exécute de manière asynchrone et le modèle s'affiche avant que le résultat de la méthode ne soit disponible.
Résolution des appels de méthode asynchrone
Pour contourner ce problème et garantir que votre modèle se met à jour avec la réponse de la méthode, vous pouvez utiliser l'une des techniques suivantes :
Conclusion
En utilisant les méthodes Meteor dans les assistants de modèles, vous pouvez effectuer actions côté serveur et récupérez les données de manière dynamique dans vos modèles. En utilisant des variables réactives ou des variables de session pour gérer les appels de méthode asynchrones, vous pouvez vous assurer que votre modèle affiche des informations mises à jour une fois la méthode terminée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!