html5 – FB Like按钮仅显示一次 – 在我的AngularJS视图的第一次加载时

前端之家收集整理的这篇文章主要介绍了html5 – FB Like按钮仅显示一次 – 在我的AngularJS视图的第一次加载时前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将FB like按钮放在我在Angular JS上构建的单页网站上.必须在控制器显示的视图(不同于index.html)上显示like按钮.但是,类似按钮仅在我第一次加载特定视图时显示.如果我在访问另一个视图后回来,则按钮不会显示.
下面是在控制器中为视图加载FB SDK的代码

(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/all.js#xfbml=1”;
fjs.parentNode.insertBefore(js,fjs);
}(document,‘script’,‘facebook-jssdk’));

index.html具有以下代码

<body ng-controller=”mainController”>

<div id=”fb-root”>

myView.html

<div class=”fb-like” data-href=”mySite.com/{{ProductID}}” data-> layout=”standard” data-action=”like” data-show-faces=”false” data-share=”true”>

我尝试了各种方法,比如使用FB.XFBML.Parse(),删除FB sdk的脚本标签并在每次加载时添加它(希望它能像第一次一样工作),尝试使用指令,放置各种观点中的fb-root div现在我一无所知:|

我觉得问题是在重新访问视图时加载或刷新SDK但我不确定.

将会感谢任何有助于我前进的输入,如果您需要更多信息,请告诉我.

谢谢,
山姆.

解决方法

我相信我找到了解决方案.

在小部件脚本的开头设置FB = null;并删除“if(d.getElementById(id))return;”

它应该如下所示:

FB = null;
(function(d,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/pt_BR/all.js#xfbml=1";
    fjs.parentNode.insertBefore(js,fjs);
}(document,'script','facebook-jssdk'));

猜你在找的HTML5相关文章