我试图让类似的框在我们的 ember 应用程序中工作,在一个名为的模板中about
。问题是,如果我从另一条路线进入 ember 应用程序(而不是about
路线),然后导航至about
路线与link-to
助手,则不会呈现类似框。相反,如果我输入/刷新about
直接路由,渲染得很好。即使有人从另一条路线导航到该路线,有关如何使其呈现的任何想法吗?
模板/about.hbs:
...
<div class = "fb-like-box" data-href = "https://www.facebook.com/app-link" data-width = "250"
data-height = "313" data-colorscheme = "light" data-show-faces = "true" data-header = "false"
data-stream = "false" data-show-border = "true"></div>
...
视图/application.js:
export default Ember.View.extend({
facebook_app_id: config.APP.facebook_app_id,
initLibs: function ()
{
// initialize Facebook SDK
var facebook_id = this.facebook_app_id;
window.fbAsyncInit = function ()
{
FB.init({
appId: facebook_id,
xfbml: true,
version: 'v2.1'
});
};
(function (d, s, id)
{
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id))
{
return;
}
js = d.createElement(s);
js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
}.on('didInsertElement')
});
默认情况下,Facebook JS SDK 在初始化时“遍历”您的文档一次,并查找要解析的元素并将其转换为 FB 社交插件。但如果您稍后才加载并添加这些元素,那当然是行不通的。
但 SDk 提供了一种重新解析文档中此类元素的方法,FB.XFBML.parse– 在新元素添加到 DOM 后调用它。 (您可以让它再次浏览整个文档,或者传入对特定 DOM 元素的引用,这样它只会评估文档的“子树”,以获得更好的性能。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)