2016-10-28 7 views
0

JSONスコープの外でJSONから国名を取得しようとしていますが、何とかしていないようですが、何が間違っていますか?私は$ rootScopeを調べましたが、それではそれほど遠くはないようです。原理的には単純ですが、他のスコープやページ自体に変数として国名を使用したいのですが、Controller.cs(.net)で使用してデータベースに送信したい場合もあります角型ローカル変数からグローバル変数へ

app.controller('PageController', 
    function ($scope, $http) { 

var analyticsCountry = "default"; 

$.getJSON('//www.geoplugin.net/json.gp?jsoncallback=?', 

function (data) { 
    $scope.testing = data; 
    $scope.testing.country = data.geoplugin_countryName; 
    //console.log($scope.testing.country); 
    analyticsCountry = $scope.testing.country; 
}); 

    console.log(analyticsCountry); 

    $scope.GetTrendingCDsByCountry = function() { 
     $http({ 
      method: 'Get', 
      url: "/CD/GetTrending?id=" + analyticsCountry 

     }) 
      .success(function (data, status, headers, config) { 
       $scope.cds= data; 
      }) 
      .error(function (data, status, headers, config) { 
       $scope.message = 'Unexpected Error'; 
      }); 

    }; 


}); 

答えて

0

ビューに表示したい場合。ちょうどそれを$scopeに縛りなさい、そして、あなたは行くのがよいでしょう。 @Suren Srapyanは、console.log()の値が"default"に保存された後にコールバックが実行されると述べています。

app.controller('PageController', 
    function ($scope, $http) { 

$scope.analyticsCountry = "default"; 
$scope.GetTrendingCDsByCountry = function() { 
    $http({ 
     method: 'Get', 
     url: "/CD/GetTrending?id=" + $scope.analyticsCountry 

    }) 
     .success(function (data, status, headers, config) { 
      $scope.cds= data; 
     }) 
     .error(function (data, status, headers, config) { 
      $scope.message = 'Unexpected Error'; 
     }); 

}; 

$.getJSON('//www.geoplugin.net/json.gp?jsoncallback=?', 

function (data) { 
    $scope.testing = data; 
    $scope.testing.country = data.geoplugin_countryName; 
    //console.log($scope.testing.country); 
    $scope.analyticsCountry = $scope.testing.country; 
    console.log($scope.analyticsCountry); 
    $scope.GetTrendingCDsByCountry(); 
    }); 

}); 

これはうまく動作し、ビューでも簡単にアクセスできます。

+0

はい私はどのようにこれを変数として渡す必要があるのか​​を知っているので、PageController.js内の他のjsonルーチンでも同様に使用でき、ローカルではビューで使用されません –

+0

この '$ scope.analyticsCountry'はあなたのpageControllerでも変数として簡単にアクセスできます。 –

+0

しかし、 'http'要求からコールバックが実行された後。 –

関連する問題