我正在尝试使变量从2个不同的值中进行选择,如果一个为null,则选择另一个。
author: '@'+ user.services.instagram.username.toUpperCase() || user.services.twitter.screenName.toUpperCase()
当我尝试评论Twitter帐户时,这会导致错误。
TypeError: Cannot read property 'instagram' of undefined
这是一个快照代码
comment = _.extend(commentAttributes, {
userId: user._id,
// author: '@'+user.services.instagram.username.toUpperCase(),
author: '@'+ user.services.instagram.username.toUpperCase() || user.services.twitter.screenName.toUpperCase(),
submitted: formatDate(new Date())
});
答案 0 :(得分:0)
user.services
变量为undefined
。'@' + null
提供了'@null'
,因此它总是很简洁。答案 1 :(得分:0)
我找到了解决方案。我试图用'相同'变量拉出Instagram和twitter的@句柄,所以我可以将它用作个人资料名称。问题是Instagram正在使用services.instagram.username而Twitter正在使用services.twitter.screenName
我可以修改这个编辑流星包但这不是一个完整的解决方案,而是我为'Account.onCreateUser'based on this制定了一个条件。
所以我只是让profile.name保存用户@而不是名字。
if (service == 'instagram') {
if (!user.profile)
user.profile = {};
if (!user.profile.name)
user.profile.name = user.services[service].username;
}
if (service == 'twitter') {
if (!user.profile)
user.profile = {};
if (!user.profile.name)
user.profile.name = user.services[service].screenName;
}