【问题标题】:Generating QR codes using steeve:jquery-qrcode使用 steeve:jquery-qrcode 生成二​​维码
【发布时间】:2016-10-03 01:14:24
【问题描述】:

我正在做一个流星项目,我想为每个用户分配一个二维码。 我做了一些研究,发现steeve:jquery-qrcode(在这里找到:https://atmospherejs.com/steeve/jquery-qrcode)是一种这样做的方式。

很遗憾,我找不到有关如何使用此软件包的任何信息。我错过了什么吗?因为自述文件没有太多说明这个包的使用。

否则有没有更好的包在meteor项目中生成二维码?

【问题讨论】:

  • 二维码只是一个字符串的显示媒介,很像条形码字体,所以当你说“为每个用户分配一个二维码”时,你的意思是“显示用户的姓名/ID”吗?作为二维码”?如果是这样,那么您可以在服务器端或客户端生成图像。恕我直言,客户端更简单。 jQuery plugin 大约是 14k。
  • 我的意思是基本上给每个用户一个重定向到他们的网址的二维码,即 www.example.com/@username

标签: jquery meteor packages qr-code


【解决方案1】:

这个包只是导入原始的jquery-qrcode。 您可以在此处找到说明:https://github.com/jeromeetienne/jquery-qrcode

// basic usage:
$('selector').qrcode({text: 'some string'});

如果您必须在不使用响应式数据源的情况下生成二维码,您可以调用 Template.YourTemplate.onRendered() 上的代码

Template.YourTemplate.onRendered(function () {
  $('selector').qrcode({text: 'some string'});
});

但如果您必须动态更改二维码,您可以执行以下操作:

<template name="hello">
  <div class="testqrcode" data-qrcode="{{someReactiveData}}"></div>
</template>

if (Meteor.isClient) {
  var counter = new ReactiveVar(0);

  Meteor.setInterval(function () {
    counter.set(counter.get() + 10);
  }, 300);

  Template.hello.helpers({
    someReactiveData: function () {
      Tracker.afterFlush(function () {
        $('.testqrcode').each(function (i, e) {
          $(e)
            .empty()
            .qrcode({text: $(e).attr('data-qrcode')});
        });
      });
      return Meteor.absoluteUrl() + counter.get();
    }
  });
}

DEMO of reactive example here

【讨论】:

  • 注意:onRendered代码中的小错误,最后缺少一个}:)
  • @WalterB 不错!已更正!