如何修复以下错误:“无法读取未定义的属性'init'”?

时间:2017-05-17 15:21:16

标签: meteor initialization atmosphere.js

我正在运行Meteor版本METEOR@1.4.2.3

我最近通过Atmosphere安装了社交媒体分享包。

meteor add ellisonleao:sharerjs.

有关该软件包的更多信息,请访问: http://www.ellison.rocks/sharer.js/

我的模板事件处理程序如下所示:

Template.detail.events({

"click .sharer": function() {
//add new buttons with share behaviour

$('.postedImagesWell').append(<button class="sharer button" data-sharer="facebook" data-url="https://ellisonleao.github.io/sharer.js/">Share on Facebook</button>);                                             
window.Sharer.init();
    }
});

在代码中找到下面的模板:

<template name="detail">

<div class="postedImagesWell">
<img class = "img-responsive img-rounded postedImages" id = "trial" src="{{this.photo.url}}" alt="thumbnail" >

</template>

当我跑步时点击Share on Facebook链接。我在浏览器中看到此错误消息:

Uncaught TypeError: Cannot read property 'init' of undefined

如何解决问题的任何帮助都会很棒!

提前致谢

1 个答案:

答案 0 :(得分:1)

你应该尝试在这个lib的大气页面上列出的其他回购:https://github.com/okmttdhr/sharer.npm.js

另外,我认为您不需要使用jquery附加共享按钮。只需将按钮添加到模板,然后在单击侦听器上,而不是调用window.Sharer,将event参数添加到侦听器函数,然后实例化新的共享器,如下所示:

import Sharer from 'sharer.npm.js';
// ...

Template.detail.events({

  "click .sharer": function(event) {
     const sharer = new Sharer(event.target);
     sharer.share();
  }
});