如何根据流星大火和引导程序进行数据进行不同的工具



我正在使用流星大火和bootstrap 3显示带有鼠标上的工具提示的IMG。静态工具提示文本可以正常工作:

<img class="socialMediaIcon" src={{iconPath}} data-toggle="tooltip"
     data-placement="right" title={{tooltip}} />

,但我想根据集合文档字段的值动态更改工具提示。

我创建了一个模板助手来生成所需的文本:

Template.SocialMedia.helpers({
  getSocialMediaIconTooltip: function(service) {
    console.log(">>>>>> Tooltip service =", service);
    var smsdata = socialMediaSystem.findOne({service: service});
    if (!smsdata.active)
      return smsData.tooltip;
    else {
      var smudata = socialMediaUser.findOne({accountId: Meteor.user()._id, service: service});
      if (smudata)
        return "Disconnect " + smsData.tooltip;
      else
        return "Connect " + smsData.tooltip;
    }
  },

我打电话给它:

<img class="socialMediaIcon" src={{iconPath}} data-toggle="tooltip"
     data-placement="right" title={{getSocialMediaIconTooltip name}} />

其中"名称"是打开文档中的一个字段(代码在{{#each}} loop内部(。"名称"是非蓝兰的,稍后在#EHT块中成功使用。" getocialmediaiconcontooltip"永远不会被调用,也没有出现工具提示。我已经在其他有效的地方使用了这个论点。我在做什么错?

助手可能会丢下错误,在Blaze模板中,这意味着空白输出(即没有工具提示(。检查浏览器控制台是否有错误消息。

您的助手均指smsdatasmsData。这是正确的,还是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);
  }
  },

最新更新