Twitter bootstrap 3 如何使用Meteor Blaze和Bootstrap根据数据进行不同的工具提示?
我使用Meteor Blaze和Bootstrap 3在鼠标上方显示带有工具提示的img。它适用于静态工具提示文本:Twitter bootstrap 3 如何使用Meteor Blaze和Bootstrap根据数据进行不同的工具提示?,twitter-bootstrap-3,tooltip,meteor-blaze,Twitter Bootstrap 3,Tooltip,Meteor Blaze,我使用Meteor Blaze和Bootstrap 3在鼠标上方显示带有工具提示的img。它适用于静态工具提示文本: <img class="socialMediaIcon" src={{iconPath}} data-toggle="tooltip" data-placement="right" title={{tooltip}} /> 我称之为: <img class="socialMediaIcon" src={{iconPath}} data-toggle=
<img class="socialMediaIcon" src={{iconPath}} data-toggle="tooltip"
data-placement="right" title={{tooltip}} />
我称之为:
<img class="socialMediaIcon" src={{iconPath}} data-toggle="tooltip"
data-placement="right" title={{getSocialMediaIconTooltip name}} />
其中“name”是打开文档中的一个字段(代码位于{{{each}}循环中)。“name”非空,稍后在#each块中成功使用。“GetSocialMediaIContolTip”永远不会被调用,也不会出现工具提示。我在其他地方使用过这个参数传递语法。我做错了什么?助手可能会抛出错误,在Blaze模板中,这意味着空白输出(即没有工具提示)。检查浏览器控制台中的错误消息
您的助手同时引用
smsdata
和smsdata
。这是正确的,还是smsData是无效的引用?关于我的拼写错误,请参见上面的评论。更正后的代码供参考:
Template.SocialMedia.helpers({
getSocialMediaIconTooltip: function(service) {
try {
const smsdata = socialMediaSystem.findOne({subname: service});
if (smsdata.active == false)
return smsdata.tooltip;
else {
const smudata = socialMediaUser.findOne({accountId: Meteor.user()._id, service: service});
if (smudata)
return "Disconnect " + smsdata.tooltip;
else
return "Connect " + smsdata.tooltip;
}
} catch(ex) {
console.error(ex);
}
},
有时,只需要其他人提出建议,就可以让您更仔细地查看代码。我将处理程序包装在try/catch中,
smsData
未定义。拼写错误,应在第6、10和12行中为smsdata
。此外,在findOne(第5行)中,键名是子名称
,而不是服务
。现在很有魅力,谢谢@Alex的刺激。有时候我觉得自己很愚蠢。
Template.SocialMedia.helpers({
getSocialMediaIconTooltip: function(service) {
try {
const smsdata = socialMediaSystem.findOne({subname: service});
if (smsdata.active == false)
return smsdata.tooltip;
else {
const smudata = socialMediaUser.findOne({accountId: Meteor.user()._id, service: service});
if (smudata)
return "Disconnect " + smsdata.tooltip;
else
return "Connect " + smsdata.tooltip;
}
} catch(ex) {
console.error(ex);
}
},