2017-09-02 11 views
0

以下のスクリプトを実行すると、JSONを取得するためのAPI呼び出しが行われます。それは動作し、返されるものに満足しています。JSONレスポンスを変数に変換する - Jquery/Javascript

私の問題は、返されたものをプロジェクト全体で使用できるグローバル変数に変換する方法がわかりません。

さらに説明すると、私は呼び出しを行い、いくつかのJSONが返されます。 NAME, EMAIL, ADDRESS

次に、これらの変数を利用できる別のスクリプトを実行します。誰か私に例を与えることができますか?

$('.Name').html(data.user.name); 
    $('.Email').html(data.user.email); 
    $('.Address').html(data.user.teams[0].name); 

スクリプト

function currentUrl() { 
     return new Promise(function (resolve) { 
     chrome.tabs.query({ 
      active: true, 
      currentWindow: true 
     }, function(tabs) { 
      resolve(tabs[0].url) 
     }) 
     }) 
    } 
    function userIdfromUrl(url) { 
     var parts = url.split('/') 
     return parts[parts.length - 1] 
    } 
    var authorizationToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
    function myapiRequest(endpoint, options) { 
     $.ajax($.extend({}, { 
     type: 'GET', 
     dataType: "json", 
     success: function(data) { 
     $('.Name').html(data.user.name); 
     $('.Email').html(data.user.email); 
     $('.Address').html(data.user.teams[0].name); 
    }, 
     url: "https://api.myapi.com/" + endpoint, 
     headers: { 
      "Authorization": "Token token=" + authorizationToken, 
      "Accept": "application/vnd.myapi+json;version=2" 
     } 
     }, 
     options)); 
    } 
    currentUrl() 
     .then(function (url) { 
     return userIdfromUrl(url) 
     }) 
     .then(function (userId) { 
     return myapiRequest('users/' + userId + '?include%5B%5D=contact_methods&include%5B%5D=teams') 
     }) 
     .then(function (data) { 
     console.log(data.user.name) 
     console.log(data.user.email) 
     console.log(data.user.teams[0].name) 
    }) 

答えて

0

まず、あなたの変数を定義します。var ABC = NULLを。 成功関数では、これを試してください:abc = data.user.email;

0

グローバル変数は、コールバック関数またはグローバル変数に割り当てるコールバック関数に渡すため、定義する必要があります。あなたのHTMLマークアップで、その後

応答

.then(function(data) { 
      userName = data.user.name; 
      userEmail = data.user.email; 
      userTeamName = data.user.teams[0].name; 
     } 

で、その後

var userName; 
var userEmail; 
var userTeamName; 

$('.Name').html(userName); 
$('.Email').html(userEmail); 
$('.Address').html(userTeamName); 

は、この情報がお役に立てば幸い!

関連する問題