我无法弄清楚为什么我的Meteor模板帮助器不能在我的Ubuntu服务器上工作,所以我只是将几个变体一起攻击并且这个最终正在工作...本地我使用if(user[0].trusted == true)
但由于某种原因有条件没有在服务器上被触发。
Handlebars.registerHelper('isTrusted', function(user_id){
var user = Meteor.users.find({_id: user_id}).fetch();
console.log(user, 'user');
console.log(user[0].trusted);
if(user[0].trusted = true){
console.log(user[0].trusted, 'user trusted field');
return true;
} else {
false;
}
});
为什么?
答案 0 :(得分:3)
你的黑客错了。它总是会进入if分支,主要是因为你没有比较而是分配:
if(user[0].trusted = true)
在这里,您要分配给用户[0] .trusted真实值。因为它在if里面,javascript正在检查赋值是否正确。因为它分配正确,所以它进入分支(始终)。
向控制台发送user [0] .trusted的值。也许这是一个数字,或者有其他价值。无论如何,你的代码有一个bug,它不是服务器的东西。
答案 1 :(得分:1)
这也许是一种很好的方式:
Handlebars.registerHelper('isTrusted', function(user_id){
return !!Meteor.users.findOne({_id: user_id, trusted: true});
});
或者如果您将其转换为字符串,则可以使用'true'
代替true