アプリの大まかなドラフトが完成したばかりで、自動公開モードと安全でないモードを削除する時が来たと考えました。クライアントで呼び出していたすべての不要な更新および挿入メソッドをメソッドに転送し始めました。しかし、今はID からユーザー名を返すのに問題があります。
以前の私の機能:(自動公開を削除するまでは機能していました)
challenger: function() {
var postId = Session.get('activePost');
var post = Posts.findOne(postId);
if (post.challenger !== null) {
var challenger = Meteor.users.findOne(post.challenger);
return challenger.username;
}
return false;
}
今私がしようとしていること:
Template.lobby.helpers({
challenger: function() {
var postId = Session.get('activePost');
var post = Posts.findOne(postId);
if (post.challenger !== null) {
var userId = post.challenger;
Meteor.call('getUsername', userId, function (err, result) {
if (err) {
console.log(err);
}
return result;
});
}
return false;
},
使用:
Meteor.methods({
getUsername: function(userId) {
var user = Meteor.users.findOne({_id: userId});
var username = user.username;
return username;
},
...
})
コードをブロックして、値が定義されたときにのみ値を返し、call-callback で console.logging を試みました (正しいユーザー名がコンソールに返されましたが、ビューは変更されませんでした)。
誰かが私が犯している明らかな間違いを見つけてくれることを願っています.3時間試してみましたが、値がコンソールに返されるのにテンプレートに返されない理由がわかりません.