angular-easyfb icon indicating copy to clipboard operation
angular-easyfb copied to clipboard

How to use fb-login-button directive

Open Kukiwon opened this issue 8 years ago • 1 comments

Thank you for developing this library! I'm trying to figure out how to use the fb-login-button directive. I want to get notified when the user clicks the login button. I have discovered an onLogin attribute in the directive but when I supply a scope-bound function it tells me it cannot find that method once I click the button.

Here's my button HTML: <div class="fb-login-button" data-size="large" data-button-type="login_with" data-auto-logout-link="false" data-use-continue-as="true" on-login="loginWithFacebook()"></div>

Once I click the button (I'm already logged in) I get the following: screen shot 2018-01-09 at 11 44 38

Can you tell me how to use the on-login attribute so that I can do something once the user clicks the button? Thank you!

Kukiwon avatar Jan 09 '18 10:01 Kukiwon

Hi @Kukiwon, the on-login attribute on the directive is currently called from Facebook JS SDK, which means it's not aware of AngularJS context.

Maybe something like this will work (untested):

angular.module('myApp').run(function ($rootScope) {
  window.myAppRootScropeBroadcast = function (arguments) {
    var args = Array.prototype.slice.call(arguments);
    return $rootScope.$broadcast.apply($rootScope, args);
  };
});
<div class="fb-login-button"
  data-size="large"
  data-button-type="login_with"
  data-auto-logout-link="false"
  data-use-continue-as="true"
  on-login="myAppRootScopeBroadcast('FB login button login')"></div>

Or you should just use FB.Event.subscribe to subscribe to login/logout events.

pc035860 avatar Jan 10 '18 04:01 pc035860