2015-04-26 28 views
6

Oauth kimlik doğrulaması yapmak için RESTful arka ucunu çağıran bir pop-up penceresi var, ancak sonuç döndüğünde, açılır pencereyi kapatmak ve JSON'u depolamak yerine, açılır pencerede JSON'ı görüntüler. Bir örnek. Bunu nasıl düzeltirim?Açılır pencereden JSON Sonuçlarını Alın. 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

Bunu yapmak için? Etki alanınızda bulunuyorsa, verileri ana pencereye geri iletmek için postMessage API'sini kullanabilirsiniz – charlietfl

+0

Bunu denediğimde hiçbir şey olmuyor. – Knoland

+0

neyi denediğinizde? – charlietfl

cevap

0

Açıklanan durum, Angular'daki sorununuzu çözmenin en iyi yolu değildir. Bunun bir denetleyicinin içine yazıldığını varsayarım. Eğer öyleyse, arka uç servisine çağrı yapmak en iyi şekilde $http servisiyle yapılır. ilk etapta ekstra pencere gerekiyor Neden

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)); 
     }); 
    } 
    }])