2013-03-16 2 views
5

Я пытаюсь добавить кнопку Facebook Войти на мой сайт, используя документацию по https://developers.facebook.com/docs/reference/plugins/login/Facebook Вход с использованием кнопки AngularJS

Теперь эта кнопка отображается в представлении. Представление загружается только тогда, когда пользователь явно запрашивает логин на веб-сайт.

Я использую версию HTML5. На шаге 1 меня попросят включить Javascript SDK - я делаю это сразу после тега. Он находится на главной странице, содержащей директиву ng-view.

Я размещаю код для визуализации кнопки входа в представление. Проблема в том, что если я перейду к просмотру, нажав кнопку входа на главной странице, представление не отобразит кнопку входа в FB. Однако, если я обновляю страницу (ту, которая содержит вид входа), кнопка отображает.

Я переместил код для Javascript SDK в окно входа в систему - как до отображения кнопки, так и после нее, но это также не решает проблему. Только при обновлении имени входа в систему отображается кнопка.

Так,
а) Либо мне нужно знать, почему это происходит, и раствор или
б) Обновить в AngularJS; то есть мне нужно знать способ AngularJS, чтобы обновить окно входа в систему до его визуализации, чтобы (я надеюсь) кнопка входа в систему была отображена.

+0

Пожалуйста, разместите ссылку на plunker/jsfiddle. – Stewie

ответ

11

Это связано с тем, что Facebook предоставляет всю страницу один раз, чтобы найти свои кнопки и прочее. После загрузки ngView вам необходимо повторно запустить парсер.

Поскольку вы не должны манипулировать dom на контроллере, это директивная версия.

angular.module("myApp", []).directive("fbLogin", function($rootScope) { 
    return function (scope, iElement, iAttrs) { 
     if (FB) { 
      FB.XFBML.parse(iElement[0]); 
     } 
    }; 
}; 
+1

BRILLIANT !! Я боролся за демонстрацию этого в плункер, и это заставка! Я не хотел создавать директиву, поэтому то, что я сделал, было в представлении, содержащем div для отображения кнопки входа в FB, я добавил тег 'script' в конце представления с кодом' FB.XFBML.parse (), и это сделало трюк! Большое спасибо! – user109187

+0

У вас есть решение для кнопки входа в Google Plus? Такая же проблема отличается от социальной сети, хотя ... – user109187

+0

Должна быть ручная разборка, функция бутстрапа. Он должен быть включен в документацию, вам нужно его прорвать. –