动态json到组合框dojo

时间:2014-06-24 13:10:33

标签: javascript json combobox dojo

我在使用来自跨Origin请求的jsonRest填充Combobox动态时遇到问题。

我发现有机会静态(我希望这是正确的词汇),但我不知道怎么做多个案例。因为这是一个更大的网站的一小部分有五个组合框。

这是代码

require([
"dojo/_base/array",
"dojo/store/Memory",
"dojo/store/JsonRest",  
"dijit/form/ComboBox", 
"dojo/store/Cache",
"dojo/store/Observable",
"dijit/form/Textarea",
"dojo/domReady!"
 ], 

function(array, Memory, JsonRest, ComboBox, Cache, Observable, Textarea){

var myArray = new Array;
var myStore = new Observable (new Cache (new JsonRest ({
            target: “URL / target”,
            idProperty: "WA",
            headers: { "X-Requested-With": "" }
        }), new Memory ()));
var myTextarea = new Textarea ({
    name: "myarea",
    style: "width:200px;"
}, "myarea");
myStore.query().then(function(response){
            });

store = new Memory({data: myArray});        //Store anlegen ... mit Array befüllen

var comboBoxWA = new ComboBox({
    id: "comboWA",
    name: "WA",
    value: "",
    store: store, // übergabe angelegter Store zu Combobox
    searchAttr: "WA"
}, "comboWA");

// Array befüllen,.. Store anlegen,... Array dem Store zuweisen
myStore.query().then(function(response){
    dojo.forEach( response, function( obj ) {
        for (var p in obj) {
            if(p=="WA"){

//这是我的问题,我无法将myArray.push中的“WA”更改为某个全局变量。

                myArray.push({"WA" : obj[p]});  //Array befüllen
                console.debug(myArray.toSource()); 
      }}
      });
        });
 });

json响应看起来像这样 [对象{WA =''WA_30_14“},对象{WA =”WA_30_12“},对象{WA =”WA_30_10“},对象{WA =”WA_30_16“},...]

对我有任何想法或简单的例子吗? 谢谢,格奥尔格

1 个答案:

答案 0 :(得分:0)

您也可以尝试以下方法。所以你需要“myArray.push({”WA“:obj [p]});”成为“myArray.push({some_global_variable:obj [p]});”。 请执行下列操作。
1.在推送方法
之前创建一个空的LOCAL对象 2.使用数组语法将属性分配给局部变量
3.将局部变量作为参数传递给push方法。

var localobj = {}; // step 1 
localobj[global_var] = obj[p]; //step 2 
myArray.push(localobj); // step 3 

在使用

的push()之前,您可以检查全局变量的值
console.log("My glogbal varible"+global_var);
相关问题