angularjs - 使用 AngularJS 的 Facebook 登录按钮

标签 angularjs facebook-login

我正在尝试使用 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/

相关文章:

jquery - 用于在宽屏幕上折叠 Bootstrap 侧边栏的按钮

javascript - 如何制作需要点击的Facebook登录按钮?

java - 未安装 Facebook 应用程序时,Facebook 登录按钮单击失败

jquery - 面子书 :login_button failed to resize in 45s

javascript - 错误: $injector:unpr Unknown Provider Angular

facebook - Angular/Node/Express/Passport - 连接到 facebook (CORS) 时出现问题

javascript - AngularJS:如何使内部div可见

javascript - Angular.js 仅在网络服务器上路由

css - react-facebook-login 按钮样式

ios - Facebook 登录无效范围