Вход в Angularjs Facebook: невозможно прочитать свойство «appendChild» с нулевым значением

Я использую модуль angular-facebook для добавления возможности входа в Facebook в свое приложение.

Обычно я получаю следующую ошибку при загрузке страницы:

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

Когда я получаю эту ошибку, всплывающее окно входа в facebook становится пустым/пустым или не может войти в систему.

Мои угловые зависимости модуля приведены ниже:

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>


person Ebru Yener    schedule 09.02.2015    source источник
comment
Где-то в коде будет ссылка типа ‹someObject›.appendChild. Пока эта строка выполняется, ‹someObject› будет нулевым. Вам нужно будет понять, почему он приходит как нуль, или присвоить ему какое-то значение.   -  person paje007    schedule 09.02.2015
comment
можете показать фрагмент js?   -  person Shikhar    schedule 09.02.2015
comment
@Shikhar Я использую angular-facebook (github. com/Ciul/angular-facebook/blob/master/lib/) в качестве модуля и инициализирует SDK Facebook в начале.   -  person Ebru Yener    schedule 10.02.2015


Ответы (1)


Проблема возникает из-за того, что тег ng-view в <body> ngRoute сам организует содержимое тела, но facebook js sdk пытается управлять div «fb-root» под телом.

Решение состоит в том, чтобы переместить ng-view во внутренний div под body и при необходимости создать div fb-root:

<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>

person Ebru Yener    schedule 09.02.2015