我已经编写了if语句,检查是否有当前用户,如果是,请从我的数据库中获取当前用户的个人资料图片网址并将其放入div中。我已成功完成了以下逻辑:
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)");
}
};
现在我几乎可以肯定我正在使用&&&操作员在这里错了,但我想在中间else if
说的是"如果有当前的用户&他们没有个人资料图片......"
我如何正确说明这一点?
答案 0 :(得分:3)
实际上,如果找不到密钥,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;
语法为Conditional (ternary) Operator
答案 1 :(得分:1)
您需要在检查之前获取个人资料图片网址并添加try / catch作为安全网(因为我不知道current
和url
方法的实现)< / p>
function checkLogin()
{
try
{
var profilePicUrl = Parse.User.current().get("profile_picture").url();
if (Parse.User.current() && profilePicUrl)
{
$(".user-image").css("background-image", "url("+profilePicUrl+")");
}
else
{
$(".user-image").css("background-image", "url(//default image)");
}
}
catch(e)
{
console.log("unexpected error occured");
$(".user-image").css("background-image", "url(//default image)");
}
};
答案 2 :(得分:-1)
试试这个......
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)");
}