Ember.js + AddThis错误“Uncaught TypeError:无法读取未定义的属性'调用'”

时间:2013-07-10 20:39:54

标签: javascript ember.js addthis

我正在尝试将AddThis小部件添加到ember.js应用。我正在使用直接从addthis.com获取的基本代码:

<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style addthis_32x32_style">
<a class="addthis_button_facebook"></a>
<a class="addthis_button_twitter"></a>
<a class="addthis_button_google_plusone_share"></a>
<a class="addthis_button_linkedin"></a>
<a class="addthis_button_pinterest_share"></a>
</div>
<script type="text/javascript" src="http://s7.addthis.com/js/300/addthis_widget.js#pubid=ra-51ddaec37ede7c28"></script>
<!-- AddThis Button END -->

...并收到此错误:“未捕获的TypeError:无法从第2行的http://ct1.addthis.com/static/r07/core085.js读取未定义的属性'call'。

我已经提出过支持,但还没有运气。关于造成这种情况的任何想法都会有所帮助!提前谢谢!

编辑:我目前在应用中的模板中有上面的代码。

1 个答案:

答案 0 :(得分:2)

我深入研究了addthis窗口小部件和恕我直言,从脚本加载的代码执行了一些讨厌的事情,比如创建script标记或{{1}在iframe模板中,小部件脚本执行的DOM操作不会与handlebars一起工作,除非addthis后面的团队做了一些事情来使小工具更多整合友好。

所以我看了一些替代共享小部件,而sharethisaddthis基本相同,但有一个很大区别 - 我很容易使用ember.js

基本上我所做的就是为窗口小部件创建一个视图,并在ember.js内部调用窗口小部件初始化:

didInsertElement

然后在另一个模板中,只需执行以下操作即可轻松使用小部件:

App.WidgetView = Ember.View.extend({
  templateName: 'widget',
  didInsertElement: function() {
    stLight.options({publisher: "ur-733dae74-7b06-4fef-3f54-f60dce5ce03e", doNotHash: false, doNotCopy: false, hashAddressBar: false});
  }
});

{{view App.WidgetView}} 模板如下所示:

widget

在这里查看working demo

免责声明:虽然我的回答并没有直接解决您的问题,但也许它可以帮助您通过使用不同的共享小部件采取不同的方法,因为我猜您不会放弃{{1}只是因为一些模糊的编程小部件无法正常工作。

希望它有所帮助。