yarkov
@yarkov
Помог ответ? Отметь решением.

Как uLogin callback использует angular controller?

В личном кабинете делаю функцию привязки соц.аккаунта через uLogin. Как в коллбэке вызвать метод контроллера? Оформление виджета кастомное.
<div id="uLogin" data-ulogin="display=buttons;callback=User.getTokenFromULogin">
    <img data-uloginbutton="vkontakte" class="social-account-icon" src="img/icons/vkontakte.png">
    <!-- Ещё иконки... -->
</div>

Вот в контроллере User есть метод getTokenFromULogin. Если указать любую не ангуляровскую функцию, то в нее передаются данные, а так не работает.
  • Вопрос задан
  • 607 просмотров
Решения вопроса 1
yarkov
@yarkov Автор вопроса
Помог ответ? Отметь решением.
В общем как-то так решил проблему:
/**
 * Принимаем токен авторизации Ulogin
 */
function getTokenFromULogin(token) {
	$.getJSON("//ulogin.ru/token.php?host=" + encodeURIComponent(window.location.toString()) + "&token=" + token + "&callback=?", function (data) {
		data = $.parseJSON(data.toString());
		if (!data.error) {
			// В <div ui-view="UserPage"></div> у меня загружается стэйт личного кабинета, поэтому получаем его scope
			var UserCtrl = angular.element('[ui-view="UserPage"]').scope();
			// UserCtrl.User - контроллер пользователя
			// AddSocialAccount - метод, который дергает метод фабрики, в котором на сервер уходят данные пользователя от uLogin
			UserCtrl.User.AddSocialAccount(data);
		}
	});
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
НЕ ИСПОЛЬЗУЙТЕ ULOGIN ИЛИ ЕГО АНАЛОГИ!!!
https://habrahabr.ru/post/238117/
Как по вашему монетизируются подобные сервисы?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы