2017-08-13 22 views
0

我有這一塊的JS:JS:從阿賈克斯成功訪問變量

$.ajax({ 
    url: '/my-url', 
    dataType: 'json', 
    success: function(json) { 
     for (var i = 0, ien = json.data.length; i < ien; i++) { 
     createPanel(json.data[i]); 
     var options = json.options; 
     console.log(options); 
     } 
    } 
    }); 

這讓我JSON是這樣的:

{ 
    "data": [{ 
     "id": "2", 
     "item": { 
      "name": "something here...", 
      "company": "1" 
     }, 
     "companies": { 
      "name": "my super company" 
     } 
    }], 
    "options": { 
     "company": [{ 
      "value": 2, 
      "label": "my second name" 
     }, { 
      "value": 1, 
      "label": "my super company" 
     }] 
    } 
} 

在控制檯日誌中我可以看到我需要json.options然後在這段代碼後填充在同一個JS文件:

editor.field('company').update(
    // options.company "value", "label" has to be populated here 
); 

如何在稍後訪問我options變量在我的鱈魚請問?謝謝!

解決方案

貌似調整我的代碼是這樣的,做的伎倆:

$.ajax({ 
     url: '/my-url', 
     dataType: 'json' 
    }) 
    .done(callback) 
    .done(function(json) { 
     for (var i = 0, ien = json.data.length; i < ien; i++) { 
     createPanel(json.data[i]); 
     } 
    }); 

    function callback(response) { 
    var options = response.options.company; 
    editor.field('company').update(options); 
    } 
+0

循環通過'json.options.company' –

回答

-1

你只需要遍歷並獲得labelvalue

var json = { 
 
    "data": [{ 
 
     "id": "2", 
 
     "item": { 
 
      "name": "something here...", 
 
      "company": "1" 
 
     }, 
 
     "companies": { 
 
      "name": "my super company" 
 
     } 
 
    }], 
 
    "options": { 
 
     "company": [{ 
 
      "value": 2, 
 
      "label": "my second name" 
 
     }, { 
 
      "value": 1, 
 
      "label": "my super company" 
 
     }] 
 
    } 
 
}; 
 

 
$(json.options.company).each(function(k, v){ 
 
    console.log('Label: ' + v.label + ' And value is ' + v.value); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

爲什麼甚至使用jQuery來枚舉數組? – Jamiec

+0

由於OP已標記JQuery並正在使用JQuery。檢查有問題的代碼。 –

+0

推測這是Ajax調用,你不需要jQuery來枚舉數組 – Jamiec