Angularjs Facebook 登录:无法读取 属性 'appendChild' 的 null

Angularjs Facebook Login: Cannot read property 'appendChild' of null

我正在使用 angular-facebook 模块为我的应用程序添加 Facebook 登录功能。

加载页面时通常会出现以下错误:

The "fb-root" div has not been created, auto-creating Cannot read property 'appendChild' of null

当我收到此错误时,Facebook 登录弹出窗口出现 empty/blank 或无法登录。

我的 angular 模块依赖如下:

angular.module('myApp', ['ngResource', 'ngRoute', 'facebook', 'restangular', 'LocalStorageModule'])

我的index.html:

<html>
  <head>
    ..
    ..
     <script src="index.js"></script>
    <script src="assets/js/default.js"></script>
</head>
<body ng-view>
</body>

</html>

出现问题是因为 ng-view 标签在 <body> ngRoute 组织 body 本身的内容,但 facebook js sdk 试图控制 body.'fb-root' div 下的内容。

解决方案是将 ng-view 移动到 body 下的内部 div 并创建一个 fb-root div 可选:

<html>
  <head>
     <script src="index.js"></script>
    <script src="assets/js/default.js"></script>
</head>
  <body>
  <div id="fb-root"></div>
  <div ng-view>
  </div>
</body>
</html>