我正在尝试使用 https://developers.facebook.com/docs/reference/plugins/login/ 上的文档将 Facebook 登录按钮添加到我的网站。
现在,此按钮显示在 View 中。仅当用户明确请求登录网站时才会加载 View 。
我正在使用 HTML5 版本。在第 1 步中,我被要求包含 Javascript SDK - 我在标记之后立即执行此操作。它位于包含 ng-view
的主页中。指示。
我将代码放置在 View 中以呈现登录按钮。问题是,如果我通过单击主页中的登录按钮导航到 View ,则 View 不会呈现 FB 登录按钮。但是,如果我刷新页面(包含登录 View 的页面),按钮会呈现。
我也将 Javascript SDK 的代码移动到登录 View 中 - 在按钮呈现之前和之后,但这也没有解决问题。只有在刷新登录 View 时,才会呈现按钮。
所以,
a) 我需要知道为什么会发生这种情况以及解决方案,或者
b) 在 AngularJS 中刷新;那就是我需要知道在呈现登录 View 之前刷新登录 View 的 AngularJS 方式,以便(我希望)呈现登录按钮。
最佳答案
这是因为 Facebook 渲染整个页面一次以找到它的按钮和内容。
加载 ngView 后需要重新运行解析器。
由于您不应在 Controller 上进行 dom 操作,因此这里是一个指令版本。
angular.module("myApp", []).directive("fbLogin", function($rootScope) {
return function (scope, iElement, iAttrs) {
if (FB) {
FB.XFBML.parse(iElement[0]);
}
};
};
关于angularjs - 使用 AngularJS 的 Facebook 登录按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15452786/