Maison > interface Web > js tutoriel > le corps du texte

Pouvez-vous appeler des méthodes Meteor directement à partir des assistants de modèles ?

Linda Hamilton
Libérer: 2024-10-28 10:02:29
original
381 Les gens l'ont consulté

 Can You Call Meteor Methods Directly from Template Helpers?

Utilisation des méthodes Meteor dans les assistants de modèles

Dans Meteor, les assistants de modèles fournissent des données réactives au modèle. Une question courante se pose : pouvons-nous accéder aux méthodes Meteor directement à partir de ces assistants ?

Considérez le code suivant :

<code class="javascrip">// server-side method
Meteor.methods({
  // viewTest method to return a string
  viewTest: function(str) {
    return str;
  }
});

// client-side helper
Template.helloWorld.helpers({
  // attempt to call 'viewTest' method
  txt: function() {
    return Meteor.call('viewTest', 'Hello World.');
  }
});</code>
Copier après la connexion

Lors de la tentative de rendu du modèle, la fonction d'assistance renvoie une erreur, indiquant que la méthode n’existe pas. En effet, Meteor tente de restituer le modèle avant d'enregistrer la méthode sur le client.

Implémentation alternative

Il existe une approche mise à jour dans Meteor 0.9.3.1 qui résout ce problème. problème :

<code class="javascript">// client-side template
Template.helloWorld.helpers({
  txt: function() {
    return Template.instance().myAsyncValue.get();
  }
});

// client-side 'created' callback
Template.helloWorld.created = function() {
  // create a ReactiveVar instance and attach it to the template
  this.myAsyncValue = new ReactiveVar("Waiting for response from server...");
  
  // call the 'getAsyncValue' method and update the ReactiveVar when the callback fires
  Meteor.call('getAsyncValue', (err, asyncValue) => {
    if (err) console.log(err);
    else this.myAsyncValue.set(asyncValue);
  });
};</code>
Copier après la connexion

Cette solution utilise des ReactiveVars, qui sont des sources de données réactives liées à des instances de modèle. En stockant le résultat de la méthode dans un ReactiveVar et en le mettant à jour dans le rappel, l'assistant peut accéder de manière réactive à la valeur renvoyé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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal