繁体   English   中英

'=='在本地工作,但在服务器上进行比较需要'='

[英]'==' 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM