Comment obtenir un Météore.Appel à la valeur de retour pour modèle?
J'ai essayé pour comprendre ce post au sujet de ce concept, cependant, je ne suis pas pour l'obtenir. J'ai la suite de l'installation est simple:
/server/test.js
Meteor.methods({
abc: function() {
var result = {};
result.foo = "Hello ";
result.bar = "World!";
return result;
}
});
/client/myapp.js
var q = Meteor.call('abc');
console.log(q);
Cette structure renvoie à la console undefined
.
Si je change le myapp.js
fichier:
Meteor.call('abc', function(err, data) {
!err ? console.log(data) : console.log(err);
}
- Je recevoir la Object
dans ma console.
Idéalement c'est ce que j'aimerais être en mesure de le faire, mais ça ne fonctionne pas, en indiquant dans la console: Cannot read property 'greeting' of undefined
/client/myapp.js
var q = Meteor.call('abc');
Template.hello.greeting = function() {
return q.foo;
}
Toute aide dans la transmission des données à partir du serveur de l'objet dans le modèle serait grandement apprécié. Je suis encore à apprendre le JavaScript & Meteor.
Merci!
Vous devez vous connecter pour publier un commentaire.
De le
Meteor.appel
de la documentation:Donc, vous aurez envie de le faire comme ceci:
Ce sera de façon réactive de mettre à jour le modèle une fois que les données sont disponibles.
);
et ajouter un point-virgule à la fin de laTemplate.hello.greeting
fonction de l'obtenir pour enfin travailler (si vous voulez la modifier votre code). Merci encore pour votre aide!ReactiveVar
au lieu de laSession
, de toute façon ce n'est pas toujours réactif puisqu'il repose sur l'appel deMeteor.call
. Je suis à la recherche d'un moyen d'obtenir un serveur var à partir d'un Météore méthode réactive pour le client.undefined
. Ce n'est pas erroring arrière soit, j'ai vérifié que déjà.Cela se produit parce que
Npm.require
a Async comportement. C'est la raison pour laquelle vous devez écrire une fonction de rappel pour l'Meteor.call
.Mais il y a une solution, il suffit d'utiliser
install(mrt add npm)
et vous obtiendrez une fonction nomméeMeteor.sync(//...)
avec cela, vous pouvez faire les deux jeux: synchronisation et asynchrone dans votreMeteor.call()
.Référence: http://www.sitepoint.com/create-a-meteor-app-using-npm-module/
Vous pouvez obtenir la valeur de retour d'un Météore méthode pour une utilisation dans un modèle en utilisant un réactive variable. Découvrez la travail de démonstration sur Meteorpad
Je suis allé pour un ghetto solution. Mais, cela fonctionne pour moi, qui est ce qui compte, pour moi. Ci-dessous mon code, qui, dans le concept, je pense, à résoudre des OP du problème.
Du client main.js:
Cela va à l'confirmLogin() la fonction toutes les cinq secondes.
La confirmLogin fonction du client main.js):
La loggedIn méthode (dans le serveur de main.js):
Pertinentes helper: