2017-08-13 23 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