Javascript 我应该如何恰当地构建这一点;如果;使用jQuery的语句?
我已经编写了一条if语句,检查是否存在当前用户,如果存在,则从我的数据库中获取该当前用户的配置文件图像url并将其放置在div中。我已经成功地使用以下逻辑完成了此操作:Javascript 我应该如何恰当地构建这一点;如果;使用jQuery的语句?,javascript,jquery,if-statement,parse-platform,Javascript,Jquery,If Statement,Parse Platform,我已经编写了一条if语句,检查是否存在当前用户,如果存在,则从我的数据库中获取该当前用户的配置文件图像url并将其放置在div中。我已经成功地使用以下逻辑完成了此操作: function checkLogin() { if (Parse.User.current()) { var profilePicUrl = Parse.User.current().get("profile_picture").url(); $(".user-image").css("
function checkLogin() {
if (Parse.User.current()) {
var profilePicUrl = Parse.User.current().get("profile_picture").url();
$(".user-image").css("background-image", "url("+profilePicUrl+")");
} else {
$(".user-image").css("background-image", "url(//default image)");
}
};
然而问题是,当用户没有配置文件映像时,它会抛出一个错误。我试图通过在原始两个语句之间添加以下else if
语句来抵消这一点:
function checkLogin() {
if (Parse.User.current()) {
var profilePicUrl = Parse.User.current().get("profile_picture").url();
$(".user-image").css("background-image", "url("+profilePicUrl+")");
} else if (Parse.User.current() && !profilePicUrl){
$(".user-image").css("background-image", "url(//default image)");
} else {
$(".user-image").css("background-image", "url(//default image)");
}
};
现在我几乎可以肯定我在这里使用的是& &操作符,但是在中间我想说的是代码>如果是“如果有一个当前用户和他们没有一个配置文件图像……”/P>
如何正确地说明这一点?在检查配置文件pic url之前,您需要获取该配置文件,并添加一个try/catch作为安全网(因为我不知道当前的
和url
方法的实现)
您需要在检查配置文件pic url之前获取它,并添加一个try/catch作为安全网(因为我不知道current
和url
方法的实现)
实际上,由于parseObject.get()
返回null
如果找不到键,您只需要:
function checkLogin() {
if (user = Parse.User.current()) {
var profilePic = user.get("profile_picture");
var profilePicUrl = profilePic ? profilePic.url() : "//default image";
$(".user-image").css("background-image", "url("+profilePicUrl+")");
}
};
请注意,var someVar=someVar?valueA:valueB
语法实际上是一个,因为parseObject.get()
返回null
如果找不到键,这里需要的只是:
function checkLogin() {
if (user = Parse.User.current()) {
var profilePic = user.get("profile_picture");
var profilePicUrl = profilePic ? profilePic.url() : "//default image";
$(".user-image").css("background-image", "url("+profilePicUrl+")");
}
};
请注意,var someVar=someVar?valueA:valueB代码>语法是一个试试这个
var profilePicUrl = null;//assign some empty value here...
if (Parse.User.current()) {
profilePicUrl = Parse.User.current().get("profile_picture").url();
}
if(Parse.User.current() && profilePicUrl ){
$(".user-image").css("background-image", "url("+profilePicUrl+")");
}
else if (Parse.User.current() && !profilePicUrl){
$(".user-image").css("background-image", "url(//default image)");
} else {
$(".user-image").css("background-image", "url(//default image)");
}
试试这个
var profilePicUrl = null;//assign some empty value here...
if (Parse.User.current()) {
profilePicUrl = Parse.User.current().get("profile_picture").url();
}
if(Parse.User.current() && profilePicUrl ){
$(".user-image").css("background-image", "url("+profilePicUrl+")");
}
else if (Parse.User.current() && !profilePicUrl){
$(".user-image").css("background-image", "url(//default image)");
} else {
$(".user-image").css("background-image", "url(//default image)");
}
第二种情况永远不会被使用,因为第一种情况在它之前总是true(除非Parse.User.current()
更改调用之间的返回值)。为什么不在创建时在DB中为用户设置默认映像?@7urkm3n我该怎么做?我喜欢这个选项,这取决于你的后端。您在后端使用什么?另外@bleeted0djs
version应该可以使用,试试他的帖子。第二个案例永远不会被使用,因为第一个案例在它之前都是真的(除非Parse.User.current()
更改调用之间的返回值)。为什么不在创建时在DB中为用户设置默认图像?@7urkm3n我该怎么做呢?我喜欢这个选项,这取决于你的后端。您在后端使用什么?另外@bleeted0djs
version应该可以用,试试他的帖子。.get(“profile\u picture”).url()
会在get返回null
时抛出一个错误,我知道你把try-catch放在那里是为了防止出现这种情况,但值得一试metioning@DelightedD0D是,因为url的实现和当前方法不共享。。获取(“profile_picture”).url()
将在get返回null
时抛出错误,我知道您将try-catch放在那里是为了防止出现这种情况,但值得一试metioning@DelightedD0D是的,因为url的实现和当前方法是不共享的。我只是想发布我的,靠近这个)这会消除错误,而不是显示默认的图像r没有存储配置文件图像的用户,它只显示一个空白div@JohnDurand您是否已将//默认图像
替换为图像的实际路径?@DelightedD0D您是否像这样传递它“url(url(//默认图像))“
在这种情况下,无需担心,快乐编码:)我只想发布我的,靠近此)这会消除错误,但不会为未存储配置文件图像的用户显示默认图像,它只是显示一个空白div@JohnDurand您是否已将//默认图像
替换为图像的实际路径?@delighteddod您是否像这样传递它“url(url(//默认图像))”
在这种情况下,无需担心,快乐编码:).get(“profile\u picture”).url()
将在get返回null
时抛出错误,这是超冗余的。get(“profile\u picture”)。url()
将在get返回null
时抛出错误,这是超冗余的