[英]'==' works locally but '=' required for comparison on server
我不知道为什么我的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;
}
});
为什么?
您的hack是错误的。 它将始终输入if分支,主要是因为您不是在进行比较而是分配:
if(user[0].trusted = true)
在这里,您将分配给user [0] .trusted的真实值。 由于它位于if中,因此javascript正在检查分配是否正确。 由于分配正确,因此它将进入分支( 始终 )。
将用户[0] .trusted的值发送到控制台。 也许是数字,或者还有另一个值。 无论如何,您的代码中都有一个错误,这与服务器无关。
这也可能是一个不错的方法:
Handlebars.registerHelper('isTrusted', function(user_id){
return !!Meteor.users.findOne({_id: user_id, trusted: true});
});
或者,如果将其强制转换为字符串,则可以使用'true'
代替true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.