2015-04-26 4 views
6

У меня есть всплывающее окно, которое вызывает RESTful-сервер для аутентификации Oauth, но когда результат возвращается, он отображает JSON во всплывающем окне, а не закрывает всплывающее окно и сохраняет JSON в модель. Как это исправить?Получить JSON Результат из всплывающего окна. Angular.JS

this.socialLogin = function(provider) { 
    var url = urlBase + '/' + provider, 
     width = 1000, 
     height = 650, 
     top = (window.outerHeight - height)/2, 
     left = (window.outerWidth - width)/2, 
     socialPopup = null; 

    $window.open(url, 'Social Login', 'width=' + width + ',height=' + height + ',scrollbars=0,top=' + top + ',left=' + left); 
}; 
+0

Зачем вам нужно дополнительное окно, в первую очередь? Если в вашем домене вы можете использовать postMessage API для передачи данных обратно в главное окно – charlietfl

+0

Когда я пытаюсь это сделать, ничего не происходит вообще. – Knoland

+0

когда вы пытаетесь что? – charlietfl

ответ

0

Описанная ситуация, скорее всего, не лучший способ решить вашу проблему в Angular. Я предполагаю, что это написано внутри контроллера. Если это так, вызов бэкэнд-сервиса лучше всего сделать с помощью службы $http. Для этого

controller.js

angular.module('example') 
    .controller(['$scope', '$http', '$window', function($scope, $http, $window) { 

    $scope.socialLogin = function(urlEnd) { 
    $http.get(urlBase + '/' + urlEnd) // Should probably be posting here... 
     .then(function(res) { // Your JSON response here 
     $scope.doSomethingWithTheResponse(res.data); 
     }, function(err) { // Handle your error 
     $window.alert("We got us an error!\n" + JSON.stringify(err)); 
     }); 
    } 
    }]) 
Смежные вопросы