我已经为登录用户的3个条件写了一个帮助器。我已经验证了在client.js和浏览器控制台上使用console.log登录用户登录时正在填充CurrentUsers集合。我不确定我是否会犯这个错误或者是否有点错误。服务器控制台或浏览器控制台中没有错误消息,但没有显示0个用户登录的情况。
JS:
CurrentUsers = new Meteor.Collection("currentUsers")
if (Meteor.isClient) {
Template.lobby.nousers = function() {
return CurrentUsers.find().count() === 0;
}
Template.lobby.oneuser = function(){
return CurrentUsers.find().count() === 1;
}
Template.lobby.twousers = function(){
return CurrentUsers.find().count() === 2;
}
}
if (Meteor.isServer) {
Meteor._onLogin = function (userId){
if(CurrentUsers.find({user: userId}).count()===0){
CurrentUsers.insert({user: userId})
}
}
Meteor._onLogout = function (userId){
CurrentUsers.remove({user: userId})
}
}
HTML:
<head>
<title>bubblepopper</title>
</head>
<body>
{{loginButtons align = "right"}}
</body>
<template name = "lobby">
{{#if nousers}}
<div class = "nouser">
Hello please sign in to enter the game lobby.
</div>
{{/if}}
</template>
答案 0 :(得分:1)
您遗失了{{> lobby}}
。
<body>
{{loginButtons align = "right"}}
{{> lobby}}
</body>
另外,据我所知,Meteor不提供登录/注销挂钩,因此Meteor._onLogin
和Meteor._onLogout
无法开箱即用:https://github.com/meteor/meteor/issues/1074
此event-hooks包可能对您有用。